找出数组中第二大的数

 求一个数组中的最大元素是比较简单的.算法

int get_max_number(int *data, size_t size)
{
int max = data[0];
for(size_t i=1; i!=size; i++)
{
if(data[i]>max)
{
max = data[i];
}
}
return max;

}
求数组中的第二大的元素也挺简单的,我看到有这样一种算法,就是比较每一个元素,把前一个赋给max的元素赋给sec_max,可是要同时保证sec_max是其他元素中最大的(固然,除了max以外,因此放在else子句中).数组

const int MINNUMBER = -32767;
int get_sec_number(int *data, size_t size)ide

{
int sec_max = MINNUMBER;
int max = data[0];
for(size_t i=1; i!=size; i++)
{
if(data[i]>max)
{
sec_max = max;
max = data[i];
}
else
{
if(data[i]>sec_max)
{
sec_max = data[i];
}
}
}
return sec_max;
}
相关文章
相关标签/搜索