資料結構排序之快速排序

2021-06-26 13:03:40 字數 624 閱讀 9618

本來昨天晚上就可以把快速排序發上去,沒想到昨晚csdn竟然維護,那麼就只能在停電的情況下下用學校的卡的要死的網發這快速排序了,不停多好,停電了還得自己掏腰包買個充電檯燈,裝的好像像學霸一樣,實際就是乙個大學渣,我也就不jjyy,直接說快速排序的思想,我是這樣理解的,用乙個變數作為基準,在拿出i和j兩個變數,分別從陣列的兩端開始,將比它大的放在後面,小的放在前面,後續用遞迴的思想完成,這個效率還是很讚的,平均時間的複雜度為o(nlogn),對於常規的排序演算法我看了書上的總結,和大家分享一下 (

1)當記錄的規模小,直接插入排序較好,當直接選擇移動的記錄數少於直接插入時,應該選擇直接選擇排序

(2)看起來貌似記錄初始狀態有序,則應選用直接插入或者氣泡排序

(3)若記錄比較大,大概掃一眼比較亂,果斷上快速排序,沒得商量,因為平均時間的複雜度為o(nlogn),時間最少

直接上**吧

#include#include#includevoid quicksort(int a,int n) // 實現排序的函式

{ int i=0,j=n-1,k=a[i];

if(n-1>0) // 遞迴的終止條件

{ while(ik) //從左找第乙個小於k的數

j--;

if(i

資料結構之快速排序

3.編寫乙個快速排序的演算法,並且在main函式中驗證其功能已實現 快速排序 quick sort 又稱劃分交換排序,基本思想 在待排序的n 個記錄中記錄中任取乙個作為 基準 將其餘記錄分為兩組,第一組中 各記錄的鍵值均小於或等於基準的鍵值,第二組中各記錄的鍵值均大於 或等於基準的鍵值,而基準就排在...

資料結構之快速排序

旁白 演算法小白白一枚,突然要掌握演算法。花廢了2個小時把一些基本的知識掌握。包括偽 書寫規則 演算法設計技術和時間複雜性的計算弄清楚。本打算用本子做筆記,一想發現沒筆 沒本子,這對本在疫情被困在家的我來說是一筆 鉅額 所以想到寫部落格,一方面剛接觸感覺有點意思,另一方面當做筆記隨時可以複習看看 廢...

資料結構之快速排序

快速排序也屬於內部排序,他是對氣泡排序的改進。基本思想是 在一趟排序時,選定乙個值 一般選陣列的中間值 在這趟排序過程中將陣列中小於這個中間值數放在陣列左邊,大於中間值的數放在陣列右邊,然後在繼續按照這種方法將左右兩邊的數進行快速排序,最終得到有序陣列。示意圖如下 下面是用遞迴實現的快排 publi...