0
冒泡排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public class Bubble { public static void main(String[] args) { int[] arr = new int[]{2, 5, 3, 1, 8, 7, 4}; sort(arr); System.out.println(Arrays.toString(arr)); }
public static void sort(int[] arr) { for (int i = 0; i < arr.length; i++) { for (int j = 1; j < arr.length - i; j++) { if (arr[j - 1] > arr[j]) { int temp = arr[j - 1]; arr[j - 1] = arr[j]; arr[j] = temp; } } } } }
|
选择排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| public class Selection { public static void main(String[] args) { int[] arr = new int[]{2, 5, 3, 1, 8, 7, 4}; sort(arr); System.out.println(Arrays.toString(arr)); }
public static void sort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { int minIndex = i; for (int j = i + 1; j < arr.length; j++) { if (arr[minIndex] > arr[j]) { minIndex = j; } } int temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } } }
|
插入排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| public class Insertion { public static void main(String[] args) { int[] arr = new int[]{2, 5, 3, 1, 8, 7, 4}; sort(arr); System.out.println(Arrays.toString(arr)); }
public static void sort(int[] arr) { for (int i = 1; i < arr.length; i++) { for (int j = i; j > 0; j--) { if (arr[j - 1] > arr[j]) { int temp = arr[j]; arr[j] = arr[j - 1]; arr[j - 1] = temp; } else { break; } } }
} }
|
希尔排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| public class Shell { public static void sort(int[] arr) { int h = 1; while (h <= arr.length / 2) { h = h * 2 + 1; } while (h >= 1) { for (int i = h; i < arr.length; i++) { for (int j = i; j >= h; j -= h) { if (arr[j - h] > arr[j]) { int temp = arr[j]; arr[j] = arr[j - h]; arr[j - h] = temp; } else { break; } } } h = h / 2; } } }
|