Java冒泡排序,二分查找法
冒泡排序
int[] arr = {1,7,6,2,8,4}; int temp ; //只需 运行 5次 for (int i = 0; i < arr.length - 1; i++) { //依次比较并排序 for (int j = 0; j < arr.length - i -1; j++) { //如果 第一个数 比 第二数大 则进行判断,否则不进行 if( arr[j] > arr[ j+ 1] ){ //将 大的值 赋给 temp temp = arr[j]; //将 第二个数的值 赋给第一个数 arr[j] = arr[j +1]; // 将大的值 赋给 第二个数 arr[j + 1] =temp; } } } //打印 for (int i : arr) { System.out.println(i); }
二分查找法
public int findValue(int[] arr ,int key){ //开始值 int start = 0; //结束值 int end = arr.length -1; while (start <= end){ //中值索引 int middle = (start + end) / 2; //如果 目标值 小于 中值 if(key < arr[middle] ){ //结束值 = 中值索引 - 1 end = middle - 1; }else if( key > arr[middle] ){//如果目标 大于 中值 //开始值 = 中值索引 + 1 start = middle + 1; }else{ //否则直接返回 中值索引 return middle; } } return -1; }