JAVASE总结--折半查找

来源:互联网 发布:淘宝茶叶排名 编辑:程序博客网 时间:2024/06/03 11:41

[24, 30, 38, 71, 74, 101, 110, 132, 176, 205, 235, 246, 248, 249, 265, 325, 332, 348, 385, 404, 420, 465, 487, 492, 540, 568, 612, 619, 639, 644, 675, 710, 729, 757, 772, 778, 791, 801, 851, 897]

left right middle    666

0 39 19(385)

20 39 29(639)

30 39 34(757)

30 33 31(675)

30 30 30(644)

31 30 不成立

 

将数组排好序之后,开始查找。

public static int binarySearch(int[]nums, int searchNum) {

//开始定义变量

int left = 0;

int right =nums.length - 1;

int middle = 0;

//开始进行循环查找

while (left <=right) {

middle = (left +right) / 2;

System.out.println(left +"\t" + right + "\t" +middle);

//开始判断值

if (nums[middle] < searchNum) {

left =middle + 1;

} else if (nums[middle] > searchNum) {

right =middle - 1;

} else {

return middle;

}

}

return -1;

}

0 0
原创粉丝点击