快速排序演算法實現

2022-02-22 13:33:15 字數 844 閱讀 4991

/*

快速排序演算法的基本思想是,通過一趟排序將待排記錄分隔成獨立的兩部分,其中一部分記錄的關鍵字均比另一部分的關鍵字小,則可分別對這兩部分記錄繼續進行排序,以達到整個序列有序。

一趟快速排序的演算法是:附設兩個指標low和high,它們的初值分別為low和high,設樞軸記錄的關鍵字為pivotkey,則首先從 high所指位置起向前搜尋找到第乙個關鍵字小於pivotkey的記錄和樞軸記錄相互交換,

然後從low所指位置起向後搜尋,找到第乙個關鍵字大於 pivotkey的記錄和樞軸記錄互相交換,重複這兩步直至low=high為止。由此可以該「樞軸」記錄最後所落的位置i作為分界線,將序列分隔成兩個子串行。

實際上low和high可以被理解為位置標誌,它們所指向的只是位置。而pivotkey就是乙個數值,它被選取被序列中的乙個特定元素。在每趟的快排當中,都是low和high所指位置的元素和pivotkey來做比較。

*///

列印陣列

void

printarray(

intarray , 

intn)

intpartition(

intarray,

intlow, 

inthigh)

array[low] 

=pivot;

return

low;

}void

quicksort(

intarray,

intlow,

inthigh)

}void

testquicksort()

;quicksort(array,0,

7);printarray(array,8);

}

快速排序演算法實現

快速排序演算法的原理 將數列中任取乙個數,將其左部放置比其小的數,其右部放置比其大的數。然後,對其左,右部遞迴執行這種分割過程。原始碼如下 int32 sorteddata int32 quicksort int32 sortdata,dword sortdatalen assert sortdat...

快速排序演算法實現

學完了快速排序演算法,感覺挺容易的,所以趁著有點時間就寫了個實現程式。採用了介面和實現分離的原則 qsort.h inte ce of the quick sort define num 2000 設定最多個數為1999個 class qsort qsort.cpp include qsort.h ...

快速排序演算法實現

本程式是對快速排序演算法的實現,一次while 1 都將要比較的元素存入flag中,依次將比flag小的元素放在左邊,比flag大的元素放在右邊,然後用遞迴的方法,將flag左右兩邊的元素分別快速排序操作。本程式為了方便測試,所以使用者只要輸入元素個數,程式就會隨機生成相應元素個數的陣列,並自動對其...