常见的排序算法(冒泡排序、选择排序、快速排序) 发表于 2021-02-03 | 阅读次数: 冒泡排序 123456789101112// 冒泡排序 public void bubbleSort(int[] arr) { for (int i = 0; i < arr.length; i++) { for (int j = 1; j < arr.length - i; j++) { if (arr[j] < arr[j - 1]) { int tmp = arr[j]; arr[j] = arr[j - 1]; arr[j - 1] = tmp; } } }} 选择排序 123456789101112131415// 选择排序 public void selectionSort(int[] arr) { int minIndex, tmp; for (int i = 0; i < arr.length - 1; i++) { minIndex = i; for (int j = i + 1; j < arr.length; j++) { if (arr[j] < arr[minIndex]) { minIndex = j; } } tmp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = tmp; }} 快速排序 1234567891011121314151617181920212223242526// 快速排序 public void quickSort(int[] arr) { quickSort(arr, 0, arr.length - 1);}public void quickSort(int[] arr, int begin, int end) { if (begin >= end) { return; } int i = begin; int j = end; int tmp = arr[i]; while (i < j) { while (i < j && arr[j] >= tmp) { j--; } arr[i] = arr[j]; while (i < j && arr[i] <= tmp) { i++; } arr[j] = arr[i]; } arr[i] = tmp; quickSort(arr, begin, i - 1); quickSort(arr, j + 1, end);} 单元测试 12345678@Testpublic void test() { int[] arr = new int[]{1, 2, 4, 3, 7, 5, 6, 5, 7, 8, 9}; System.out.println("排序前:" + Arrays.toString(arr)); quickSort(arr); // bubbleSort(arr); System.out.println("排序后:" + Arrays.toString(arr));} 相关文章 二分法查找(Java 版) 二叉树的四种遍历方式(Java 实现) 位运算使用场景之标志位(打标) 了解布隆过滤器原理以及 Guava 的 BloomFilter 使用 三分钟理解一致性 Hash 算法原理 本文链接: https://zhangzw.com/posts/20210203.html 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-ND 许可协议。转载请注明出处!