关于C语言用折半查找法查找数的问题

关于C语言用折半查找法查找数的问题

if(num<ar[t]){

n=t-1;

}

else if(num>ar[t]){

m=t+1;

}

else if(num==ar[t]){

e=1;

}

改为

if(num<ar[t]){

m=t; // 因为数组是从大到小,所以num小的时候要找坐标大的部分,也不要有+1和-1,这样会丢判断数字

}

else if(num>ar[t]){

n=t; // 因为数组是从大到小,所以num大的时候要找坐标小的部分

}

else if(num==ar[t]){

e=1;

break; // 找到后要退出循环

}

粤ICP备17098710号 微点阅读