您的位置:首页 > 其它

【排序算法】——快速排序

2015-09-27 16:06 274 查看
场景:代码实现堆排序,选择使用Java代码

思路:每一趟快排之后得到一个元素,其左边所有元素都小于该元素,其右边所有的元素都大于该元素,并对两边再进行一趟排序,递归操作。
代码实现
package Sort;
public class QuickSort {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int array[] = {9,7,4,23,5,7,0,12,67,11,5};
		for(int i : array){
			System.out.print(" "+i);
		}		
		System.out.println("排序后");
		quickSort(array,0,array.length-1);		
		for(int i : array){
			System.out.print(" "+i);
		}		
	}
	
	public static void quickSort(int[] array,int beg,int end){	
		if(beg < end){
			int mid = getMid(array, beg, end);
			quickSort(array,beg,mid-1);
			quickSort(array, mid+1, end);
		}		
	}	
	public static int getMid(int[] array,int beg,int end){
		int flag = array[beg];
		while(beg < end){
			while(beg < end && array[end]>=flag){
				end--;
			}
			array[beg] = array[end]; 
			while(beg < end && array[beg]<=flag){
				beg++;
			}
			array[end] = array[beg];						
		}			
	 	array[beg] = flag;
	 	return beg;		
	}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: