求一個數組中的最大元素是比較簡單的.算法
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;
}