关于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; // 找到后要退出循环
}
-
上一篇:折半插入排序和归并排序
-
下一篇:用c#实现折半查找