演算法學習 1 快速排序

2021-06-27 05:51:13 字數 615 閱讀 9854

序:快速排序比較難以理解,多baidu下,多想想最後就明白了,以下是自己的理解

有興趣的可以參考:

來學習演算法

有兩種實現模式

1、找到乙個交換乙個(左右側)

**如下

void quicksort::qsort_wk( int s,int lindex,int rindex )

{ if(lindex>=rindex) return;

int i=lindex;

int j=rindex;

int xkey=s[i];

while(i=xkey)

j--;

//if(i

void quicksort::qsort_exg(int src,int lindex,int rindex)

{ if(lindex>=rindex) return;

int low=lindex;

int hight=rindex;

int key=src[lindex];

while(low!=hight)

{ //從hight開始

while(low=key)

hight--;

//while(low

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

課程參考 資料結構 浙江大學 10.1.1 演算法概述 10.1.2 選主元 10.1.3 子集劃分 10.1.4 演算法實現 演算法視覺化 史上最容易理解的 十大經典演算法 動態圖展示 網上有的 看了下都比較長,陳越姥姥給的演算法思路較清晰,量少,遂記錄之。快速排序的思想是首先選取乙個主元,然後將...

演算法學習筆記 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 設定排序的左指標...