第十六周 專案1驗證演算法 快速排序

2021-07-25 09:46:03 字數 1073 閱讀 1219

問題及**:

/*        

*煙台大學計算機與控制工程學院

*作 者: 車佳穎

*完成日期:2023年12月15日

(1)直接插入排序;(2)希爾排序;(3)氣泡排序;(4)快速排序;(5)直接選擇排序;(6)堆排序;(7)歸併排序;(8)基數排序。

*/

以第乙個元素作為基準

#include #define maxsize 20  

typedef int keytype; //定義關鍵字型別

typedef char infotype[10];

typedef struct //記錄型別

rectype; //排序的記錄型別定義

void quicksort(rectype r,int s,int t) //對r[s]至r[t]的元素進行快速排序

rectype; //排序的記錄型別定義

void quicksort1(rectype r,int s,int t) //對r[s]至r[t]的元素進行快速排序

{ int i=s,j=t;

keytype pivot;

rectype tmp;

pivot = r[(s+t)/2].key; //用區間的中間位置的元素作為關鍵字

if (si && r[j].key>pivot)

j--; //從右向左掃瞄,找第1個小於基準的r[j]

知識點總結:

先選取乙個元素作為基準(一般為第乙個元素),然後從序列的最後乙個元素看如果比基準小則將基準的位置覆蓋,如果比基準大就不用覆蓋,然後再比較序列前面的元素,小則覆蓋,如果遇到相鄰的兩個元素都比基準小則直接與拖下來即可。

第十六周 專案1 驗證演算法 快速排序

檔名稱 1.cpp 作 者 楊俊傑 完成日期 2016年 12月15日 版 本 號 v1.0 問題描述 輸出描述 快速排序 1 以第乙個元素為基準 cpp view plain copy include define maxsize 20 typedef intkeytype 定義關鍵字型別 typ...

第十六周專案1 驗證演算法 快速排序

程式 檔名稱 1.cpp 完成日期 2016年12月16日 版本號 vc6.0 觀察執行結果並深刻領會演算法的思路和實現方法。輸入描述 無 程式輸出 測試結果 include define maxsize 20 typedef int keytype 定義關鍵字型別 typedef char inf...

第十六周專案(1) 驗證演算法4 快速排序

問題及 煙台大學計算機與控制工程學院 作 者 楊甯 完成日期 2015年12月14日 問題描述 用序列作為測試資料,驗證快速排序。include define maxsize 20 typedef int keytype 定義關鍵字型別 typedef char infotype 10 typede...