Java七武器----排序算法之快速排序

本週盤點:微信閱讀差兩個小時,博客差四篇,小說差兩章,另外就是寫代碼的時間遠遠不夠,週六日需要做的事情就是將這些未完成的任務必須超額度完成,還有就是公衆號、博客的學習。

快速排序概念圖

快速排序的核心思想

理解快速排序需要掌握以下幾點關鍵:1. While循環的使用。2. 中間值的獲取。3. 遞歸調用。這裏要明確其核心思想,快速排序就是找到數組的初始和最終位置索引,通過抽取其中一個數值並以之爲基準將原數組拆分成大於和小於該數值兩部分的過程。

代碼實現

public class ArithmeticUtil{
	public static int getMiddle(int[] list,int low,int high){
		int tmp=list[low];
		while(low<high){
			while(low<high&&list[high]>=tmp){
				high--;
			}
			list[low]=list[high];
			while(low<high&&list[low]<=tmo){
				low++;
			}
			list[high]=list[low];
			
		}
		list[low]=tmp;
		return low;
	}
	public static void quickSort(int[] list,int low,int high){
		if(low<high){
			int middle=getMiddle(list,low,high);
			quickSort(list,low,middle-1);
			quickSort(list,middle+1,high);
		}
	}

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章