public class Test {
public static void main(String[] args) {
int data [] = new int[]{1,3,4,7,9,11,55,66,77};
int index = halfSearch(data,11);
System.out.println("index= "+index);
}
// 折半查找方法
public static int halfSearch(int data [] ,int key){
int max ,min,mid;
min =0; // 数组脚标从0开始
max =data.length-1; // 数组脚标 代表数组的最大值
while (min<=max){
mid = (max+min)>>1; // 除以2
if(key>data[mid]){
min = mid+1;
// key大于中间值 则最小值 = 中间值+1
}
else if(key<data[mid]){
max = mid-1;
}
else {
return mid;
// 全部满足的话,返回mid
}
}
return -1;
}
// 获取index
public static int index(int data[],int key){
for(int x=0;x<data.length;x++){
if(data[x]==key) // 如果关键字匹配的话 直接返回x
return x;
}
return -1;
}
冒泡排序的第二种算法
最新推荐文章于 2021-09-28 00:16:43 发布