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

2021-07-25 09:38:11 字數 2048 閱讀 8169

/*  

* 檔名稱 :1.cpp  

* 作    者 :楊俊傑 

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

* 版 本 號 :v1.0  

* 問題描述 :

* 輸出描述 :

*/快速排序:

1).以第乙個元素為基準

[cpp]view plain

copy

#include 

#define maxsize 20

typedef

intkeytype;    

//定義關鍵字型別

typedef

char

infotype[10];  

typedef

struct

//記錄型別

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

void

quicksort(rectype r,

ints,

intt) 

//對r[s]至r[t]的元素進行快速排序

r[i]=tmp;  

quicksort(r,s,i-1);     //對左區間遞迴排序

quicksort(r,i+1,t);     //對右區間遞迴排序

}  }  

intmain()  

;  for

(i=0; i

r[i].key=a[i];  

printf("排序前:"

);  

for(i=0; i

printf("%d "

,r[i].key);  

printf("\n"

);  

quicksort(r,0,n-1);  

printf("排序後:"

);  

for(i=0; i

printf("%d "

,r[i].key);  

printf("\n"

);  

return

0;  

}1  

2).以中間位置元素為基準

[cpp]view plain

copy

#include 

#define maxsize 20

typedef

intkeytype;    

//定義關鍵字型別

typedef

char

infotype[10];  

typedef

struct

//記錄型別

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

void

quicksort1(rectype r,

ints,

intt) 

//對r[s]至r[t]的元素進行快速排序

}  quicksort1(r,s,i-1);        //對左區間遞迴排序

quicksort1(r,j+1,t);        //對右區間遞迴排序

}  }  

intmain()  

;  for

(i=0; i

r[i].key=a[i];  

printf("排序前:"

);  

for(i=0; i

printf("%d "

,r[i].key);  

printf("\n"

);  

quicksort1(r,0,n-1);  

printf("排序後:"

);  

for(i=0; i

printf("%d "

,r[i].key);  

printf("\n"

);  

return

0;  

}  

執行結果:

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

問題及 煙台大學計算機與控制工程學院 作 者 車佳穎 完成日期 2016年12月15日 1 直接插入排序 2 希爾排序 3 氣泡排序 4 快速排序 5 直接選擇排序 6 堆排序 7 歸併排序 8 基數排序。以第乙個元素作為基準 include define maxsize 20 typedef in...

第十六周專案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...