經典演算法之快速排序的C實現方法

2021-07-03 03:35:19 字數 892 閱讀 4003

這裡所實現的快速排序是參考《演算法導論》上的偽**,雖然之前對著偽**敲過一遍,可是現在拋開偽**,自己敲還是有些費勁。<-_->!!

特別需要注意的是演算法導論中的快排方法,和課上講的不太一樣,課上講的主要是利用首尾兩個下標來實現,而演算法導論中,主要是 從前到後,依次判斷,將小於privot 的值全部移到 i 的前面去。這裡 i 是指 小於 privot值的下標上界。

源**如下:

// ********************=【快速排序】***************===

// @ author : zhyh2010

// @ date : 20150606

// @ version : 1.0

// @ description :

// ********************=【快速排序】***************===

#include

#include

#include

#define num 20

int arr[num] = ;

void init()

void swap(int * pa, int * pb)

int partition(int low, int high)

swap(&arr[i + 1], &arr[high]);

return i + 1;

}void display(int * arr)

void quicksort(int low, int high)

void main()

經典排序演算法之快速排序

快排的思想是遞迴。一趟下來,比基數小的都在基數的左邊,比基數大的都在基數的右邊,然後分別對基數左邊的數進行遞迴,對右邊的數進行遞迴 當需要遞迴的元素只有乙個時,結束遞迴。public class quicksort quicksort arr,0,arr.length 1 for int a arr...

經典排序演算法之快速排序

快速排序就是通過一趟排序將原資料分成兩部分,其中一部分關鍵字都比另一部分小,接下來再對這兩部分分別使用快速排序,這裡有遞迴的思想。快速排序的平均時間複雜度為o nlgn 所以適合資料量較大的情況,但快排需要頻繁的對資料位置的操作,故不適合鏈式儲存資料。function sortquick arr,s...

經典演算法之快速排序

說明 快速排序是目前公認最快的排序方法之一。大部分情況都表現得很好,但當必須考慮最壞情況時,快速排序不可接受,因為時間達到o n2 思路 快速排序的基本思想是在數列中找出適當的軸心,將數列分成左右兩部分 左半部分的元素都小於右半部分的元素 然後分別對兩部分進行排序 重複選擇軸心,劃分左右部分的過程 ...