快速排序是对冒泡排序的改进,通过一趟排序将要排序的数据分割成独立的两个部分,其中一部分的所有数据比另一个部分的所有数据要小,再按照这种方法递归进行,使得整个数据变成有序序列。
快速排序有一个比较简单的解法--递归,具体的实现代码如下:
package com.threeTop.www;
/**
* 快速排序的递归实现
* @author wjgs
*
*/
public class QuickSort {
private int[] array;
//初始化操作
public QuickSort(int []array)
{
this.array=array;
}
public void sort()
{
quicksort(array,0,array.length-1);
}
/**
* 递归实现快速排序过程
* @param array
* @param i
* @param j
*/
private void quicksort(int[] array, int begin, int end) {
// TODO Auto-generated method stub
if(beginkey)
{
j--;
}
if(i
快速排序的优化
(1)三者取中法:头、尾、中间取中间数作为基准值
(2)根据规模大小改变算法
(3)其他分区方案考虑:例如分三个区间
(4)并行处理:采用计算机多线程并行处理来提高效率