資料結構之快速排序

2021-10-05 20:57:23 字數 869 閱讀 3308

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

廢話不多說,本文章主要介紹的是快速排序這一演算法。

關於快速排序,最重要的是要懂它如何實現的原理,通過昨天在網上查詢資料,發現乙個博主講的快速排序的原理很通俗易懂,下面貼出超連結,原理還不懂的小夥伴可以先去把原理弄懂:在馬桶上看演算法

看到這裡來了,我相信小夥伴們應該對快速排序的原理比較了解了,那麼問題來了,怎麼樣把原理變成**呢?不要換,接下來我會一步一步的貼出**。

快速排序主要是利用分治法來解決,利用分治法那麼少不了偽**了(分治法不懂得可以翻書或者上網衝浪)。

這是我剛學的偽**,自己嘗試著寫的(有問題的,各位看官希望能指出來呀)

1 quicksort(a,left,right,i,j,t,temp)

2 temp←a[left]

3 i←left

4 j←right

5 while i!=j

6 do

7 while a[j]>=temp&&i=temp&&iemm…大致就是這個過程,找準乙個基準數,然後下標從兩頭向中間滑動,滿足條件就交換位置…

下面就是寫程式,實現這個演算法。(以c為例)

#include //庫函式,不用多說

int a[7],n;//定義乙個陣列和n

void quicksort(int left, int right)//定義快速排序函式quicksort,兩個引數分別是left和right

資料結構排序之快速排序

本來昨天晚上就可以把快速排序發上去,沒想到昨晚csdn竟然維護,那麼就只能在停電的情況下下用學校的卡的要死的網發這快速排序了,不停多好,停電了還得自己掏腰包買個充電檯燈,裝的好像像學霸一樣,實際就是乙個大學渣,我也就不jjyy,直接說快速排序的思想,我是這樣理解的,用乙個變數作為基準,在拿出i和j兩...

資料結構之快速排序

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

資料結構之快速排序

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