编程之美3:寻找数组中的最大值和最小值以及最大值和次大值

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

很开心,这是今天的第三篇文章啦!下午健身也感觉非常过瘾,托付宿舍妹子从日本代购的护肤品也到了。耳边漂浮着Hebe田馥甄的《魔鬼中的天使》文艺的声线,一切都好棒,O(∩_∩)O哈哈~。爱生活,爱音乐,爱运动,额,当然还有要爱学习啦!加油↖(^ω^)↗

额,扯远了。第三篇是关于寻找数组中的最大值和最小值。第一次看到这个题目的时候,楼主稍微鄙视了一下,因为觉得这个题目有什么好做的。但是楼主还是看了看《编程之美》上的写的,发现还是有必要记录一下,不一样的思考方式。很赞!大家和楼主一起哦,Are you ready?呼呼(~ o ~)~zZ

题目一:寻找数组中的最大值和最小值

解法一

把寻找数组中的最大值和最小值看成是两个独立的问题,对于每个独立的问题的话,我们可以采用一次循环遍历的方法得到。假设数组的长度为N,那么总共需要比较的次数为2N。解法过于简单,代码略过啦。

解法二

假设数组为[5, 6, 8, 3, 7, 9],

  • 每相邻的两个元素比较,较大者放在偶数位,较小者放在奇数位。完成这一步骤后,偶数位为6, 8, 9。奇数位为5, 3, 7。

  • 然后遍历偶数位可以获得数组的最大值,遍历奇数位可以获得数组的最小值。

  • 比较次数:0.5N+0.5N+0.5N=1.5N看代码:
#include <iostream>  
#include<limits>

using namespace std;  

void partion(int *pArray, 
如何寻找数组中的最大值最小值 以下五种解法可以寻找数组中的最大值最小值; 1)问题分解法。     把本题看做两个独立的问题,而非一个问题,所以,每分别找出最小值最大值即可,此时,一共需要遍历两数组,比较数为2N;(N表示数组的长度)  2)取单元素法。     维持两个变量minmaxmin标记为最小值max标记为最大值,每取出一个元素,先与已找到的最小值比较,再与已找到的最大值比较,此种方法只 阅读详情

相关推荐

编程_2.10_寻找数组中的最大值最小值

问题描述:给出一个数组,包含N个整数,那么需要比较多少找到最大值最小值 注意:要想得到最大值最小值,遍历一遍数组是不可避免的。我们能减少的就是减少比较数来提高效率 方法一、遍历一遍数组,同时得到最大值最小值 具体是,定义一个max min,每遍历一个数,就分别max min比较一,直到处理完所有的数据 比较数: N+N = 2N 方法二、我们可以把数组中的数据两两

思考,思考,再思考~ 9422

2.10 寻找数组中的最大值最小值

1. 前言本文的一些图片, 资料 截取自编程2. 问题描述3. 问题分析对于这个问题, 我们最常规的思路, 就是 : 解法一 : 就是遍历一数组, 如果当前元素, 比max大, 或者比min小, 则记录下其值, 通过这样依遍历, 即找出了数组最大值最小值, 这样比较了 (2 * n) 解法二 : 首先遍历一数组, 两个相邻的数一组[(0, 1), (2, 3), … ], 将

970655147的专栏 1016

编程寻找数组中的最大值最小值

问题:对于一个由N个整数组成的数组,需要比较多少才能把最大值最小值的数找出来呢? 解法1:把第一个数先看成最大值最小值,然后从第一个数起往后开始遍历每一个数,如果比当前最大值大,代替最大值。同样,如果比当前最小值还小,代替当前最小值。比较数2*N。 解法2:采用分治法,分前后各一半而治,在N个数中最小值MinMax,只需要分别出前后N/2个数的MinMax,然后比较较

hllyyy的专栏【Nothing replaces hard work】 1550

给出n个数,找出这n个数的最大值最小值

list(map)

wangcheng_BI的博客 2759

python数组最小值最大值_(Python基础教程之十)Python max()min()–在列表或数组中查找最大值最小值...

使用**max()min()**方法在可比较元素的集合(例如列表,集合或数组)中查找最大(或最小)项的Python示例。1. Python max() functionmax() 该功能用于–计算在其参数中传递的最大值。如果字符串作为参数传递,则在字典上的最大值。1.1. Find largest integer in array>>> nums = [1, 8, 2, 23, 7, -4, 1...

weixin_39867327的博客 942

设计一个更优算法查找一n个元素数组中的最大值最小值

题目如题,已知一种需要比较2n的方法,要给出一个更优的算法。特别注意优化时间复杂度的常数! 解题思路:原始的方法在遍历数组的时候,每个数组元素都要MaxMin比较,共比较2n;可以通过将数组两两分组,用每个分组的最大值Max进行比较,最小值Min进行比较来进行优化,这样一来比较数减少为3n/2。 代码实现如下: #include #include "limits.h" u

coobj2008的专栏 5089

分治法的经典问题——数列最大最小值

前面我们已经了解了分治法的原理使用,分治法的经典问题——大整数相乘,趁热打铁,来学习一下如何使用分治法数列中的最大最小值。利用分治法来分析伪代码时间复杂性代码实现#include<cstdio> #include<cstdlib> #include<cmath>using namespace std;int* getmaxmin(int a, int b){ int* m = new

XXX 1万+

寻找数组最大值最小值:多种算法详解

编程中,我们经常需要在数组(或列表)中查找最大值最小值。这是一个基础但重要的问题,理解不同的解决方法有助于提高算法思维能力。查找数组中的最大值最小值一个基础但重要的问题。三种主要算法普通线性扫描法:简单直观,适合教学小数据分治算法:适合并行处理,是学习递归的好例子成对比较法:性能最优,实际应用首选算法选择原则根据数据规模场景选择合适算法考虑时间复杂度空间复杂度的权衡注意代码的可读性维护性实际应用数据分析中的基本统计图像处理中的对比度调整游戏开发中的成绩管理。

✨ 欢迎来到【Seal ^_^ 的CSDN博客】!✨ 9640

编程——寻找数组中的最大值最小值

编程——寻找数组中的最大值最小值 问题描述:给出一个数组,包含N个整数,那么需要比较多少找到最大值最小值 注意:要想得到最大值最小值,遍历一遍数组是不可避免的。我们能减少的就是减少比较数来提高效率 方法一、遍历一遍数组,同时得到最大值最小值 具体是,定义一个max min,每遍历一个数,就分别max min比较一,直到处理完所有的数据

chenglinhust的专栏 6779

048使用指针查找数组中的最大值最小值

048使用指针查找数组中的最大值最小值1.题目2.代码3.输出结果截图 1.题目 本实例实现在窗体上输入10个整型数,自动查找数组中的最大值最小值,并显示在窗体上。 2.代码 #include<stdio.h> int max_min(int a[], int n, int* max, int* min) { int* p; *max = *min = *a; for (p = a + 1; p < a + n; p++) { if (*p > * max) {

mosi357的博客 1万+

如何数组中的最大值最小值

对于普通的数大小,我们之前已经做过了,那对于如今的数组,我们该如何数组最大元素呢?我们可以这么想,数组就是一组数,只要,我们在这组数中选取一个值,然后让它依其他的数进行大小比较,当它小于其他数时,我们就把较大的那个数给它,最终就能够找到最大值了,程序如下: #include <stdio.h> int main () { int a[10] = {0,3,4,89,...

qq_43033039的博客 3万+

C语言 一个数组或者指针,如何同时最大值最小值大值

前言 数组是最基本的数据结构,学会使用数组也是程序员必须要会的。今天主要聊聊,给定一个数组,如何同时最大值最小值大值。常规的做法是遍历一遍,最大值最小值数组最大值最小值大值 #include <stdio.h> void max_and_min(int *arr, int num) { int max = arr[0];//假设第一个最大值 int...

chen1415886044的博客 4411

编程4:数组中的最大值最小值

方法1:暴力方法 遍历一遍数组,比较2*N最大值最小值 方法2:改进方法 (破坏了原数组)             遍历一遍数组使得下标为偶数的元素较下标为奇数的元素大,再分别最大值最小值             比较数为3*N/2 方法3:改进方法 (不破坏原数组)              遍历一遍数组将相邻元素中较大值nMax比较,将较小值nMin比较   

1万+

寻找数组中的最大值最小值

问题来源:《编程》2.10 寻找数组中的最大值最小值 对于一个由N个整数组成的数组,需要比较多少才能把最大最小的数找出来呢? 1. 遍历两数组,分别找出最大值最小值。需要进行 2 * N 比较 2. 将数组中的元素分组,按顺序将数组中相邻的两个数分在同一组,用MaxMin来存储最大值最小值,同一组比较完之后,较小的数与当前的最小值比较,如该数小于当前最小值,更新M

CaryaLiu的专栏 1万+

一组数组最小值最大值/数组最小值小值

最大值最小值: 首先将数组的个数分为奇数个偶数个,奇数时:最小值最大值都为a[0],剩下的分组,一组两个,跟最大值最小值比较;偶数时,对前两个进行比较,确定最大值最小值。 #include using namespace std; int find(int a[],int n) {  int min=0,max=0,i;  if(n%2==1)  {   min=a[

liqincrystal的专栏 1536

【ARM汇编数组】输出数组最大值最小值

找出最小值最大值的思想是:遍历数组中的元素,出现一个数比较两。以此保证r6中存放的永远是最小的,r8存放的永远是最大的。 用CMP带后缀指令不断更新最大值最小值。 [r5,#-4] 这种寻址方式不改变r5的值,[r5,#-4]!这种方式是前索引改变r5的值。

GRT609的博客 3523

给定一个数组,输出这个数组中的最大值最小值

/** * @author LLJ * @time 2020-5-6 17点06分 * @Description 给定一个数组,输出这个数组中的最大值最小值 */ public class BigAndSmall4 { public static void main(String[] args) { int a[] = {6,34,23,41,87,3,7}; minMa...

静默 9190

[编程] PSet2.10 寻找数组中的最大值最小值

 问题描述:给出一个数组,包含N个整数,那么需要比较多少找到最大值最小值 注意:要想得到最大值最小值,遍历一遍数组是不可避免的。我们能减少的就是减少比较数来提高效率。

飞扬的青春的专栏 1024

C语言丨如何查找数组(序列)中的最大值或者最小值

程序中,我们经常使用数组(列表)存储给定的线性序列(例如 {1,2,3,4}),那么如何查找数组(序列)中的最大值或者最小值呢? 查找数组(序列)中最大值最小值的算法有很多,接下来我们以 {3,7,2,1}序列为例讲解两种查找最值的算法,一种是普通算法,另一种是借助分治算法解决。 普通算法 普通算法的解决思路是:创建两个变量 max min 分别记录数组中的最大值最小值,它们的初始值都是数组中的一个数字。 从第 2 个数字开始遍历数组,每遇到一个max 大的数字,就将它存储到 m.

HUYA69的博客 9475
上一篇: 编程之美2:寻找最大的K个数
下一篇: windows7最简单最快速解决“此windows副本不是正版”(“This copy of Windows is not genuine”)方法
爱上健身的菇凉
博客等级 码龄15年 114粉丝 73原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值