博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
寻找数组中的最大值和最小值
阅读量:5253 次
发布时间:2019-06-14

本文共 921 字,大约阅读时间需要 3 分钟。

 

解法一:将寻找数组中的最大值和最小值看成是两个独立的问题。分别求出最大值和最小值即可。这样需要2*N次的比较才能求出最大的数和最小的数。

void FindMinMax(int A[],int size,int &min,int &max){    min=A[0];    max=A[0];    for(int i=1;i
max) max=A[i]; if(A[i]

解法三:解法已经将比较次数降低到1.5N次,但是它已经破坏原来的数组。可以不需要调整数组元素的位置,直接用两个变量Max和Min来存储当前的最大值和最小值。同一组的两个数比较之后,不再调整顺序,而是用较小者与当前的Min比较,如果该数小于当前Min,则更新Min。Max同理。该算法的比较次数扔为1.5N.

void findMaxMin(int a[],int size,int &min,int &max){    for(int i=0;i
a[i]) { if(a[i+1]>max) max=a[i+1]; if(a[i]
max) max=a[i]; if(a[i+1]

 扩展问题:如果需要找出N个数组中第二大数,需要比较多少次?

int FindSecondNum(int a[],int size){    int max=a[0];    int secondNum=0;    for(int i=1;i
max) { secondNum=max; max=a[i]; } else { if(secondNum

 

转载于:https://www.cnblogs.com/wft1990/p/7485697.html

你可能感兴趣的文章
MySQL 字符编码问题详细解释
查看>>
perl 学习笔记
查看>>
31 Days of Windows Phone
查看>>
poj 1184(聪明的打字员)
查看>>
Ubuntu下面安装eclipse for c++
查看>>
C#压缩或解压(rar和zip文件)
查看>>
让IE浏览器支持CSS3圆角属性的方法
查看>>
巡风源码阅读与分析---nascan.py
查看>>
LiveBinding应用 dataBind 数据绑定
查看>>
Linux重定向: > 和 &> 区别
查看>>
nginx修改内核参数
查看>>
【欧拉函数模板题】最大公约数
查看>>
C 筛选法找素数
查看>>
TCP为什么需要3次握手与4次挥手(转载)
查看>>
IOC容器
查看>>
织梦仿站第三课:网站的文件分割
查看>>
Windows 2003全面优化
查看>>
URAL 1002 Phone Numbers(KMP+最短路orDP)
查看>>
web_day4_css_宽度
查看>>
用sql删除数据库重复的数据的方法
查看>>