[算法导论] 快速排序
2016-05-02 22:54
309 查看
package quicksort; public class Solution { public static void main(String[] args) { QuickSort quickSort = new QuickSort(); int[] datas = new int[]{5, 6, 8, 1, 3, 10, 8, 5, 4, 15, 11}; quickSort.setData(datas); quickSort.Quick_Sort(0, datas.length-1); quickSort.Display(); } } class QuickSort { private int[] data; public void setData(int[] datas) { data = datas; } public int Partition(int start, int end) { int i = start - 1; //默认最后一个为主元阈值 int x = data[end]; for(int j = start; j < end; j++) { if(data[j] <= x) { i++; // Swap data[i] and data[j] int temp = data[i]; data[i] = data[j]; data[j] = temp; } } int temp = data[i + 1]; data[i + 1] = data[end]; data[end] = temp; return i + 1; } public void Quick_Sort(int start, int end) { if( start < end) { int partition = Partition(start, end); Quick_Sort(start, partition - 1); Quick_Sort(partition + 1, end); } } public void Display() { for (int i : data) { System.out.print(i + " "); } } }
相关文章推荐
- 快速排序
- C#快速排序算法实例分析
- C++快速排序的分析与优化详解
- js实现数组冒泡排序、快速排序原理
- php简单实现快速排序的方法
- Java 快速排序(QuickSort)原理及实现代码
- 快速排序和分治排序介绍
- java 算法之快速排序实现代码
- Java实现快速排序算法(Quicktsort)
- Java中的数组排序方式(快速排序、冒泡排序、选择排序)
- 快速排序的原理及java代码实现
- C/C++实现快速排序的方法
- c语言实现冒泡排序、希尔排序等多种算法示例
- 深入单链表的快速排序详解
- C++实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等
- JavaScript实现快速排序的方法
- C#使用委托实现的快速排序算法实例
- C语言的冒泡排序和快速排序算法使用实例
- javascript与Python快速排序实例对比
- php实现快速排序的三种方法分享