※ 引述《lionhome20 (林北大GG)》之铭言:
: 各位神人好
: 想请问在int array[5000]里
: 如何用最少的compare次数
: 找出最大 最小 次大 次小的值
: 有没有小于下列5000*4次 compare的找法
: (找每一个数都用暴力法)
: for(i=0;i<5000;i++)
: if(array[i] > Max)
: Max = array[i]
: 感谢
int Max;
int Max2;
int Min;
int Min2;
if(array[0]>array[1])
{
Max=array[0];
Max2=array[1];
Min=array[1];
Min2=array[0];
}
else
{
Max=array[1];
Max2=array[0];
Min=array[0];
Max2=array[1];
}
for(i=2;i<5000;i++)
{
if(array[i]>Max)
{
Max=array[i];
Max2=Max;
}
if(array[i]<Min)
{
Min=array[i];
Min2=Min;
}
}
应该是9997次比较
有误请指正