郝斌老師 資料結構入門 之快速排序

2021-10-08 03:46:11 字數 936 閱讀 2690

#include

void

quicksort

(int*,

int,

int)

;int

findpos

(int*,

int,

int)

;//主要思想:通過移動和賦值的方式確定第乙個元素的最終位置,然後在用同樣的方法分別確定第乙個元素的最終位置的左邊一部分和右邊一部分的第乙個元素的最終位置,以此類推

intmain

(void);

int i;

for(i =

0; i <6;

++i)

printf

("\n");

quicksort

(a,0,5

);//第二個引數表示第乙個元素的下標 第三個引數表示最後乙個元素的下標

for(i =

0; i <6;

++i)

printf

("\n");

}//用遞迴的方法實現快排

void

quicksort

(int

*a,int low,

int high)

}//確定第乙個元素的最終位置

intfindpos

(int

* a,

int low,

int high)

//終止while迴圈之後low和high一定相等

a[high]

= val;

return low;

}

關於兩個while迴圈的問題的個人理解:之前糾結過兩個while迴圈中的low= val和a[low] <= val終止迴圈的;在說內層的low= val或a[low] <= val依然成立,如果沒有low
郝斌老師資料結構10(遞迴)

這對你的編碼能力是個質的飛躍,如果你想成為乙個很厲害的程式設計師,資料結構是必須要掌握的,因為計算機專業的本科生也達不到這水平!計算機特別適合用遞迴的思想來解決問題,但是我們人類用遞迴的思想來考慮問題就會感到十分困擾,這也是很多學過遞迴的人一直都搞不明白的地方!那是不是遞迴可以隨便寫,當然不是,有些...

郝斌資料結構4遞迴

1 定義 乙個函式自己直接或間接呼叫自己 2 舉例 include include voidf int n else int main void 執行結果 3 n的階乘用遞迴來實現 3.1 如果不用遞迴來實現 3.2 如果用遞迴來實現 4 1 2 3 100之和用遞迴來實現 4.1 不用遞迴實現 4...

郝斌資料結構7排序之冒泡選擇

一.氣泡排序 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個 對每一對相鄰元素作同樣的工作。第一次後,最後的元素是最大的數 針對所有的元素重複以上的步驟,除了最後乙個 持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較 二.選擇排序 首先通過n 1 次比較,從n個數中找出最小...