折半查找、冒泡排序和选择排序
1 /** 2 * @param data 3 * @param value 4 * @return 5 * 折半查找 6 */ 7 private static int binarySearch(int[] data, int value) { 8 int min = 0; 9 int max = data.length - 1; 10 while (min <= max) { 11 int mid = (min + max) / 2; 12 if (data[mid] == value) { 13 return mid; 14 } else if (data[mid] < value) { 15 min = mid + 1; 16 } else if (data[mid] > value) { 17 max = mid - 1; 18 } 19 } 20 return -1; 21 } 22 23 /** 24 * @param arr 25 * 冒泡排序 26 */ 27 private static void bubbleSort(int[] arr) { 28 for (int i = 0; i < arr.length - 1; i++) { 29 for (int j = 0; j < arr.length - 1 - i; j++) { 30 if (arr[j] > arr[j + 1]) { 31 int temp = arr[j]; 32 arr[j] = arr[j + 1]; 33 arr[j + 1] = temp; 34 } 35 } 36 } 37 } 38 39 /** 40 * @param arr 41 * 选择排序 42 */ 43 private static void selectSort(int[] arr) { 44 for (int i = 0; i < arr.length - 1; i++) { 45 for (int j = i + 1; j < arr.length; j++) { 46 if (arr[i] > arr[j]) { 47 int temp = arr[i]; 48 arr[i] = arr[j]; 49 arr[j] = temp; 50 } 51 } 52 } 53 }