//选择排序 public class SelectSort { public static void main(String[] args) { int [] arry = {3,1,6,2,5}; for (int i = 0; i < arry.length -1; i++){ int min = i; for(int j = i + 1; j < arry.length; j++){ if(arry[j] < arry[min]){ min = j; } } // 如果min 不等于 i 等需要交换, if(min != i){ int temp; temp = arry[min]; arry[min] = arry[i]; arry[i] = temp; } } for(int element:arry){ System.out.println(element); } } }
// 冒泡排序 public class BubbleSort { public static void main(String[] args) { int[] arry = {1,3,5,2,7,6,12,56}; // 冒泡排序的核心:将左边的数和右边的数进行比较,当左边>右边时,交换位置,默认升序排序 int count = 0; for (int i = 0; i < arry.length; i++){ count ++; for (int j = arry.length - 1; j > i; j--){ if(arry[j-1] > arry[j]){ int tmp; tmp = arry[j-1]; arry[j-1] = arry[j]; arry[j] = tmp; } } } System.out.println("比较次数: " + count); for (int element:arry){ System.out.println(element); } } }
二分法查找: class BinarySearch { public static void main(String[] args) { int [] arry = {10,20,30,40,50,60}; int index = binarySearch(arry, 30); System.out.println(index == -1 ? "该元素不存在": "改元素的下标 " + index); } public static int binarySearch(int[] arry, int dest){ int begin = 0; int end = arry.length -1; while (begin < end){ int mid = (begin + end) /2; if (arry[mid] == dest){ return mid; }else if(arry[mid] < dest){ begin = mid + 1; }else { end = mid - 1; } } return -1; } }