Java基礎(chǔ)知識:采用二分法查找排序
采用二分法查找時,數(shù)據(jù)需是排好序的(升序還是降序)。假定是升序,其思想為:對于給定的值a,從序列的中間位置開始比較,如果當前位置的值等于a,那么查找成功;如果a小于當前位置的值,則到前半段去查找;反之,則到后半段去查找。
用java實現(xiàn)如下:
public class SearchTest{
public static int LookFor(int[] array, int value) {
int higher,middle,lower = 0;//頭初始為0
higher = array.length - 1;//尾長度
while(lower < higher){
middle = (lower + higher)/2;
if(value == array[middle]){
return middle;//查找到,返回數(shù)據(jù)位置。
}
else if(value > array[middle]){
lower = middle + 1;//大于中間值,去后半段查找,此時lower值發(fā)生變化
}
else if(value < array[middle]){
higher = middle - 1;//小于中間值,去前半段查找,此時higher的值發(fā)生變化
}
return -1;
}
}
public static void main(String[] args){
int[] a = {0,1,2,3,4,5,6,7,8,9};
int temp = LookFor(a, 8);
System.out.println(temp);
}
}
時間:2013-06-22 責任編輯:admin
相關(guān)文章
無相關(guān)信息