快速排序

排序过程:选取一个数,确定其最终位置,左边均大于这个数,右边均小于这个数,然后再对左右两边进行相同

                   的排序过程。

public void sorting() {
		this.quickSorting(0, array.length);
	}
	
	private void quickSorting(int start,int end){
		if(start>=end||start<0)
			return;
		else{
			int guard=start;
			int temp;
			for(int i=start+1;i<end;i++){
				if(array[guard]>array[i]){
					temp=array[i];
					for(int j=i;j>guard;j--){
						array[j]=array[j-1];
					}
					array[guard]=temp;
					guard++;
				}
			}
			
			quickSorting(start,guard);
			quickSorting(guard+1,end);
		}
	}

时间复杂度:  平均O(nlogn)         最好O(nlogn)        最坏O(n^2)        不稳定

 

代码下载:

http://download.csdn.net/detail/hbdatouerzi/9330395

posted @ 2015-12-06 15:14  黄大仙爱编程  阅读(103)  评论(0编辑  收藏  举报