查找第二大数的算法

来源:互联网 发布:4y4淘宝店铺装修 编辑:程序博客网 时间:2024/05/22 15:36
#include <iostream>#include <string>#include <assert.h>using namespace std;//寻找第二大的数 采用记录两个数的办法int secondbig(int data[],int N){assert(N>=2);int first,second;if(data[0]>data[1]){first=data[0];second=data[1];}else{first=data[1];second=data[0];}//遍历所有数字for(int i=2;i<N;i++){if(data[i]>first){if(data[i]>second)second=first;first=data[i];}else if(data[i]>second)second=data[i];}return second;}int main(){int a[]={8,3,2,1,4,6,10};cout<<secondbig(a,7)<<endl;return 0;}

一个简单的思想是遍历两遍,第一遍遍历的时候找到最大值,然后在第二遍的时候,在排除最大值的情况下找到最大值,这个第二遍遍历的最大值就是第二大的值。

一个比较简单的想法是遍历两边数组,第一遍找出最大值。

1 0