java插入,希尔,快速,冒泡,选择排序

    xiaoxiao2021-12-14  20

    public class Sort{ public static void main(String[] args) { int[] array = new int[] { 34, 8, 64, 51, 32, 21 }; // InsertSort(array);//插入排序 // SheelSort(array);// 希尔排序 // QuickSort(array);// 快速排序 // BubbleSort(array);// 冒泡排序 ChoiceSort(array);// 选择排序 for (int n : array) { System.out.print(n + " "); } } public static void SheelSort(int[] array) { int j; for (int gap = array.length / 2; gap > 0; gap /= 2) { for (int i = gap; i < array.length; i++) { int tmp = array[i]; for (j = i; j >= gap && array[j] < array[j - gap]; j -= gap) { array[j] = array[j - gap]; } array[j] = tmp; } } } public static void InsertSort(int[] array) { int j; for (int i = 1; i < array.length; i++) { int tmp = array[i]; for (j = i; j > 0 && array[j] < array[j - 1]; j--) { array[j] = array[j - 1]; } array[j] = tmp; } } public static void QuickSort(int[] array) { if (array.length != 0) { Quick(array, 0, array.length - 1); } } private static void Quick(int[] array, int low, int high) { if (low < high) { int mid = getMiddle(array, low, high);// 不推荐的做法(选取第一个元素作为枢纽元) Quick(array, low, mid - 1); Quick(array, mid + 1, high); } } private static int getMiddle(int[] array, int low, int high) { int tmp = array[low]; while (low < high) { while (low < high && array[high] >= tmp) { high--; } array[low] = array[high]; while (low < high && array[low] <= tmp) { low++; } array[high] = array[low]; } array[low] = tmp; return low; } private static void BubbleSort(int[] array) { for (int i = 0; i < array.length - 1; i++) { for (int j = 0; j < array.length - 1 - i; j++) { if (array[j] > array[j + 1]) { int tmp = array[j]; array[j] = array[j + 1]; array[j + 1] = tmp; } } } } public static void ChoiceSort(int[] array) { if (array == null || array.length <= 0) { return; } for (int i = 0; i < array.length; i++) { int min = i; for (int j = i + 1; j < array.length; j++) { if (array[min] > array[j]) { min = j; } } if (i != min) { int tmp = array[min]; array[min] = array[i]; array[i] = tmp; } } } }
    转载请注明原文地址: https://ju.6miu.com/read-964088.html

    最新回复(0)