簡述:快速排序是冒泡排序的改進版,也是好的一種內排序(內排序是指將待排序數列完全放入內存中進行排列的過程,適合不太大的元素數列)。
思想:1.在待排序的元素數列中隨便選擇一個元素作為基準(通常選取第一個作為基數),通常稱為基數
? ? ? ? ? ?2.將待排序數列進行分區,分區規則是:比基數大的元素放右邊;比基數小的元素放左邊
? ? ? ? ? 3.將已分好的區塊重復以上規則,直到所有的元素都有序為止
如下圖所示
實現編碼如下:
public void quickSort(){
? ? ?if(start > end)return;
? ? ?intleft = start;
? ? ?intright = end;
? ? ?intbaseNum = array[start];
? ? ?while(left != right){ ??
? ? ? ? ? ? ? while(left < right && baseNum <= array[right]){
? ? ? ? ? ? ? ? right--;
? ? ? ?}
while(left < right && baseNum >= array[left]){
left++;
}
inttemp = array[left];
array[left] = array[right];
array[right] = temp;
}
inttemp = array[left];
array[left] = baseNum;
array[start] = temp;
quickSort(array,start,left -1);
quickSort(array,right+1,end);
}