排序算法---快速排序

          快速排序是对冒泡排序的改进,通过一趟排序将要排序的数据分割成独立的两个部分,其中一部分的所有数据比另一个部分的所有数据要小,再按照这种方法递归进行,使得整个数据变成有序序列。

        排序算法---快速排序_第1张图片

        快速排序有一个比较简单的解法--递归,具体的实现代码如下:

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

排序算法---快速排序_第2张图片

快速排序的优化

       (1)三者取中法:头、尾、中间取中间数作为基准值

       (2)根据规模大小改变算法

       (3)其他分区方案考虑:例如分三个区间

       (4)并行处理:采用计算机多线程并行处理来提高效率

 


你可能感兴趣的:(轻松学算法)