演算法學習(1) 快速排序

2021-08-27 08:00:46 字數 820 閱讀 9064

**、課程參考:

資料結構——浙江大學

10.1.1 演算法概述;10.1.2 選主元;10.1.3 子集劃分;10.1.4 演算法實現;

演算法視覺化:

史上最容易理解的《十大經典演算法(動態圖展示)》

網上有的**看了下都比較長,陳越姥姥給的演算法思路較清晰,**量少,遂記錄之。

快速排序的思想是首先選取乙個主元,然後將待排序的陣列分成大於主元和小於主元的部分,繼續對這兩部分遞迴進行快速排序,直至排序完成。

在陳越老師的課程裡,主元的選取通過median3函式實現。這個函式的功能是對待排序陣列最左邊,中間,最右邊的數先進行排序,然後返回中間的數。

演算法學習 1 快速排序

序 快速排序比較難以理解,多baidu下,多想想最後就明白了,以下是自己的理解 有興趣的可以參考 來學習演算法 有兩種實現模式 1 找到乙個交換乙個 左右側 如下 void quicksort qsort wk int s,int lindex,int rindex if lindex rindex...

演算法學習筆記 1 快速排序

快速排序是一種二分的排序演算法,這種演算法的誕生來自於對有序陣列的觀察。我們假設有以下陣列 1,2,3,4,5,6,7,8,9 這是乙個已經按照從小到大排序完畢的有序陣列。觀察以上陣列,取其中間數5,我們可以發現5以左的數1,2,3,4均比5小,5以右的數6,7,8,9均比5大。我們以5為分界線將陣...

演算法學習 快速排序

快速排序 分治演算法 const int n 1e6 10 int a n a 待排序陣列,l 排序陣列的起始下標,r 排序陣列的結束下標 void quick sort int a,int l,int r 遞迴的終止條件 int x a l 選取排序的比較物件 int i l 1 設定排序的左指標...