快速排序

簡述:快速排序是冒泡排序的改進版,也是好的一種內排序(內排序是指將待排序數列完全放入內存中進行排列的過程,適合不太大的元素數列)。

思想: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);

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容