首页 > 代码库 > 快速排序
快速排序
1、源代码
/** * 交换排序-2.快速排序 * * @param array * 数组 * @param start * 开始序号 * @param end * 结束序号 */ public static void quickSort(int[] array, int start, int end) { if (start < end) { int key = array[start]; int i = start; for (int j = start + 1; j <= end; j++) { if (array[j] < key) { if (i + 1 != j) { // 将array[j] 与 array[i + 1]交换 array[j] = array[j] ^ array[i + 1]; array[i + 1] = array[i + 1] ^ array[j]; array[j] = array[j] ^ array[i + 1]; } i++; } } array[start] = array[i]; array[i] = key; System.out.println("键Key:" + key + ",结果:" + Arrays.toString(array)); quickSort(array, start, i - 1); quickSort(array, i + 1, end); } }
2 测试代码
@Test public void testQuickSort2() { int[] array = { 1, 8, 3, 5, 4, 6, 2, 7, 9 }; int[] expectResult = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; Sort.quickSort(array, 0, 8); Assert.assertArrayEquals(expectResult, array); }
3 结果
键Key:1,结果:[1, 8, 3, 5, 4, 6, 2, 7, 9]键Key:8,结果:[1, 7, 3, 5, 4, 6, 2, 8, 9]键Key:7,结果:[1, 2, 3, 5, 4, 6, 7, 8, 9]键Key:2,结果:[1, 2, 3, 5, 4, 6, 7, 8, 9]键Key:3,结果:[1, 2, 3, 5, 4, 6, 7, 8, 9]键Key:5,结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]
快速排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。