本帖最后由 乐少 于 2014-4-11 22:24 编辑
//这是数组里面折半查找的一段代码,在查不存在的数组成员时出的问题
public static int halfSearch(int[] arr,int a)
{
selectSort(arr);
printArray(arr);
int min = 0;
int max = arr.length-1;
int mid = (min+max)/2;
while(arr[mid]!=a)
{
if (arr[mid]>a)
max =mid-1;
else if (arr[mid]<a)
min =mid+1;
if (max<min)
//这里换成else if(max<min)就会一直循环下去,哎,一点小问题折磨了我半天,要仔细啊
return -1;
mid = (min+max)/2;
}
return mid;
} |