算法导论Java实现-快速排序(第七章)
2011-12-21 21:03
615 查看
本人独立域名One Coder博客:http://www.coderli.com
转载请务必注明出处:One Coder - http://www.coderli.com/archives/quick-sort
本人独立域名One Coder博客:http://www.coderli.com
转载请务必注明出处:One Coder - http://www.coderli.com/archives/quick-sort
转载请务必注明出处:One Coder - http://www.coderli.com/archives/quick-sort
package lhz.algorithm.chapter.seven; /** * 快速排序,《算法导论》第七章 * 本文地址:http://mushiqianmeng.blog.51cto.com/3970029/747858 * @author lihzh(苦逼coder) */ public class QuickSort { //待排数组 private static int[] input = new int[] { 2, 1, 5, 4, 9, 8, 6, 7, 10, 3 }; public static void main(String[] args) { //快速排序 quickSort(input, 0, input.length - 1); //打印数组 printArray(); } /** * 快速排序,伪代码: * QUICKSORT(A, p, r) * 1 if p < r * 2 then q ← PARTITION(A, p, r) * 3 QUICKSORT(A, p, q - 1) * 4 QUICKSORT(A, q + 1, r) * * PARTITION(A, p, r) * 1 x ← A[r] * 2 i ← p - 1 * 3 for j ← p to r - 1 * 4 do if A[j] ≤ x * 5 then i ← i + 1 * 6 exchange A[i] ↔ A[j] * 7 exchange A[i + 1] ↔ A[r] * 8 return i + 1 * 复杂度,最坏情况下:Θ(n^2) * 一般平衡情况:Θ(nlgn) * @param array 待排数组 * @param from 起始位置 * @param to 终止位置 */ private static void quickSort(int[] array, int from, int to) { if (from < to) { int temp = array[to]; int i = from - 1; for (int j = from; j < to; j++) { if (array[j] <= temp) { i++; int tempValue = array[j]; array[j] = array[i]; array[i] = tempValue; } } array[to] = array[i+1]; array[i+1] = temp; quickSort(array, from, i); quickSort(array, i + 1, to); } } private static void printArray() { for (int i : input) { System.out.print(i + " "); } } }
本人独立域名One Coder博客:http://www.coderli.com
转载请务必注明出处:One Coder - http://www.coderli.com/archives/quick-sort
相关文章推荐
- 算法导论-第七章-快速排序:随机化快速排序C++实现
- 《算法导论的Java实现》 8 快速排序
- 算法导论 第七章快速排序和两种swap函数实现方式比较
- 《算法导论》第七章----快速排序(代码实现+部分练习+部分证明)
- 算法导论 第七章快速排序中两种swap函数实现方式比较
- 算法导论 第七章快速排序中两种swap函数实现方式比较
- JAVA一个快速排序实现代码
- 4000 快速排序 java实现
- java 实现快速排序
- 递归分治法在快速排序中的应用 java以界面的方式实现
- 《算法导论的Java实现》 堆排序
- 程序员必知的8大排序(三)-------冒泡排序,快速排序(java实现)
- 算法系列(五)快速排序及其改进(Java实现)
- java实现快速排序
- Java、Scala、Go以相同方式实现快速排序代码量比较
- Java实现数据库第七章
- Java实现快速排序
- 数据结构算法之排序系列Java、C源码实现(6)--快速排序
- 交换排序之快速排序(java实现)
- 插入排序、选择排序、归并排序、堆排序、快速排序的JAVA实现