1 public static void main(String[] args) { 2 // 冒泡排序 3 // 定义一个数组,存储一些数据 4 int[] arr = {5, 3, 1, 2, 9, 6}; 5 System.out.println("=========冒泡排序=========="); 6 // 定义一个循环轮数 7 for (int i = 0; i < arr.length - 1; i++) { 8 // 定义一个循环控制每轮的次数,占位 9 for (int j = 0; j < arr.length - i - 1; j++) { 10 if (arr[j] > arr[j+1]){ // 从小到大 11 // if (arr[j] < arr[j+1]){ // 从大到小 12 int tmp = arr[j+1]; 13 arr[j+1] = arr[j]; 14 arr[j] = tmp; 15 } 16 } 17 } 18 19 // 循环输出便利的结果 20 for (int i = 0; i < arr.length; i++) { 21 System.out.print(arr[i] + "\t"); 22 } 23 System.out.println(); 24 25 System.out.println("=========选择排序=========="); 26 // 外层循环 轮数 27 for (int i = 0; i < arr.length; i++) { 28 // 内存循环 选择次数 29 for (int j = i + 1; j < arr.length; j++) { 30 // if (arr[i] > arr[j]){ // 从小到大 31 if (arr[j] > arr[i]){ // 从大到小 32 int tmp = arr[i]; 33 arr[i] = arr[j]; 34 arr[j] = tmp; 35 } 36 } 37 } 38 39 // 循环输出便利的结果 40 for (int i = 0; i < arr.length; i++) { 41 System.out.print(arr[i] + "\t"); 42 } 43 44 System.out.println(); 45 System.out.println("=============二分查找==============="); 46 int[] a1 = {9, 10, 12, 21, 30, 56, 70}; 47 System.out.println(twoSearch(a1, 21)); 48 System.out.println(twoSearch(a1, 56)); 49 System.out.println(twoSearch(a1, 90)); 50 } 51 52 // 二分查找 53 public static int twoSearch(int[] arr, int n){ 54 // 定义左边和右边的位置 55 int left = 0; 56 int right = arr.length -1; 57 // 开始循环,拆半查询 58 while (left <= right){ 59 // 取中间索引 60 int middle = (left + right) / 2; 61 // 判断当前位置元素和要查找的元素大小情况 62 if (n > arr[middle]){ 63 // 往右边找 左边位置 = 中间索引 + 1 64 left = middle + 1; 65 }else if (n < arr[middle]){ 66 // 往左边找 右边位置 = 中间索引 - 1 67 right = middle -1; 68 }else { 69 return middle; 70 } 71 } 72 return -1;// 没有该元素 73 }
标签:二分,arr,int,System,冒泡排序,length,查找,println,out From: https://www.cnblogs.com/dsds/p/17983330