快速排序
来源:互联网 发布:电信网络的dns是什么 编辑:程序博客网 时间:2024/06/05 04:46
参考
public class QuickSort { public static int[][] sortCases = { {1}, {1, 2}, {2, 1}, {1, 2, 3}, {1, 3, 2}, {2, 1, 3}, {2, 3, 1}, {3, 1, 2}, {3, 2, 1}, {2, 4, 3, 3, 5, 6, 4, 6, 5, 2, 1}, {1, 2, 2, 3, 1, 1, 1, 4, 3, 3, 3, 5, 5, 5, 5}, {3, 3, 5, 4, 2, 1, 2, 3, 3, 5, 6, 7, 8, 7, 6, 7, 4, 2, 3, 4, 1, 5, 3, 4, 4, 5, 2, 0}, }; private static void quickSort(int[] array, int start, int end) { if (start < end) { int mid = partition(array, start, end); quickSort(array, start, mid - 1); quickSort(array, mid + 1, end); } } private static int partition(int[] src, int start, int end) { int target = src[start]; while (start < end) { while (start < end && src[end] >= target) { end--; } src[start] = src[end]; while (start < end && src[start] <= target) { start++; } src[end] = src[start]; } // 此时 start == end src[start] = target; return start; } public static void main(String[] args) { testSort(); } private static void testSort() { for (int[] each : sortCases) { quickSort(each, 0, each.length - 1); checkArray(each); } } private static void checkArray(int[] arr) { for (int i = 0; i < arr.length; i++) { if (i != 0 && arr[i - 1] > arr[i]) { System.out.println("error"); } System.out.print(arr[i] + " "); } System.out.println(); System.out.println("Correct!"); }}
0 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- Hibernate详解
- mysql数据类型
- Mysql 命令大全
- android中activity的使用
- myeclipse中web项目导入jar包后启动Tomcat提示缺少jar包的解决方法
- 快速排序
- 2017年携程旅游校招Java研发笔试编程题(3个)
- SimpleAdapter
- rpm命令
- 数据库(第一范式,第二范式,第三范式)
- GregorianCalenda
- 构造函数与分配空间
- ARM处理器系列博客:提笔前言
- Python (二)列表、元组