天天看點

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

本周盤點:微信閱讀差兩個小時,部落格差四篇,小說差兩章,另外就是寫代碼的時間遠遠不夠,周六日需要做的事情就是将這些未完成的任務必須超額度完成,還有就是公衆号、部落格的學習。
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);
		}
	}

}
           

繼續閱讀