1、什麼是快速排序演算法
實際上快速排序(Quicksort)就是對冒泡排序的一種改進。
2、快速排序演算法的想法
透過一趟排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資料都比另外一部分的所有資料都要小,然後再按此方法對這兩部分資料分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個資料變成有序序列。
(影片教學推薦:java影片教學)
3、實作想法
(1)以第一個關鍵字K 1 為控制字,將[K 1 ,K 2 ,…,K n ] 分成兩個子區,使左區所有關鍵字小於等於K 1 ,右區所有關鍵字大於等於K 1 ,最後控製字居兩個子區中間的適當位置。在子區內資料尚處於無序狀態。 ;
(2)把左區當作一個整體,用(1)的步驟處理,右區進行相同的處理。 (即遞歸)
(3)重複第(1)、(2)步驟步驟,直到左區處理完畢。
4、實作程式碼
static void quicksort(int n[], int left, int right) { int dp; if (left < right) { dp = partition(n, left, right); quicksort(n, left, dp - 1); quicksort(n, dp + 1, right); } } static int partition(int n[], int left, int right) { int pivot = n[left]; while (left < right) { while (left < right && n[right] >= pivot) right--; if (left < right) n[left++] = n[right]; while (left < right && n[left] <= pivot) left++; if (left < right) n[right--] = n[left]; } n[left] = pivot; return left; }
推薦教學:java入門程式
以上是java實作快速排序演算法的思路是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!