快速排序
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]
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。