import java.util.Arrays;
public class Test6 {
//二分法查找
public int dichotomy(int[] arr, int target){
int index = 0;
int left =0;
int right = arr.length-1;
while (left<=right){ //首先1.左区间小于等于右区间
System.out.println(left+","+right);
System.out.println(left<=right);
int center = (left+right)/2;
System.out.println("下标是"+center+",值是:"+arr[center]);
if (arr[center] > target ) {//如果目标小于中间值,则更新右区间12345678
right = center-1;
}
else if (arr[center] < target ) {//如果目标大于中间值,则更新右左区间
left = center+1;
}
else{
index = 1;
System.out.println("找到了,下标是"+center+",值是"+arr[center]);
return center;
}
}
if (index == 0){
System.out.println("没有找到数");
}
return -1;
}
public static void main(String[] args) {
//冒泡排序法
//初始化数组
int[] arr = {7,6,5,3,2,1};
for (int j=0;j<arr.length-1;j++){//最外层的次数
int a;
for (int i=0;i<arr.length-1-j;i++){//内层排序的次数
if (arr[i]>arr[i+1]){
a= arr[i];
arr[i] = arr[i+1];
arr[i+1] = a;
}
}
System.out.println(Arrays.toString(arr));
}
Test6 test6 = new Test6();
test6.dichotomy(arr,5);
}
}
二分法查找+冒泡排序
最新推荐文章于 2024-07-20 23:55:03 发布