快速排序的Java实现
2010-07-23 13:37
453 查看
/** * 快速排序算法 * @param arr 待排序数组 * @param startIndex 起始下标 * @param endIndex 结束下标 * @return 排序好的数组 */ public static int[] quickSort(int[] arr, int start, int end) { int left = start; int right = end; int compIndex = start; int temp = 0; // 一趟快速排序 while (start < end) { // 从后往前找到第一个比基准值小的元素 while (start < end) { if (arr[end] < arr[compIndex]) { temp = arr[end]; arr[end] = arr[compIndex]; arr[compIndex] = temp; compIndex = end; break; } end--; } // 从前往后找到第一个比基准值大的元素 while (start < end) { if (arr[compIndex] < arr[start]) { temp = arr[start]; arr[start] = arr[compIndex]; arr[compIndex] = temp; compIndex = start; break; } start++; } } // 如果排序起始值和基准值之间还有一个元素,对基准值左边的元素集合继续进行快速排序 if (left + 1 < compIndex) { arr = quickSort(arr, left, compIndex - 1); } // 如果基准值和排序结束值之间还有一个元素,对基准值右边的元素集合继续进行快速排序 if (compIndex < right - 1) { arr = quickSort(arr, compIndex + 1, right); } return arr; }
相关文章推荐
- 快速排序及Java实现
- Java实现快速排序
- 快速排序及Java实现
- 快速排序及Java实现
- 快速排序及Java实现
- java 实现快速排序
- java 中提供的默认的快速排序的实现
- 快速排序 算法 Java 实现
- 算法1-快速排序(java实现)
- 排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- 快速排序(java 语言实现)
- 一步步学习数据结构和算法之快速排序效率分析及java实现
- 快速排序(Java语言实现)——从控制台输入数据,排序后输出
- 递归分治法在快速排序中的应用 java以界面的方式实现
- Java实现快速排序
- 关于快速排序的Java代码实现
- 快速排序及其改进算法Java实现
- Scala&Java实现快速排序
- Java实现快速排序及三向快速排序
- java实现排序算法之交换排序(冒泡排序和快速排序)