第十六周 專案3演算法驗證選擇排序

2021-07-08 21:35:29 字數 1097 閱讀 9450

* all right reserved.

* 檔名稱:houzhui.cpp

* 作 者: 商文軻

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

* 版 本 號:v1.9

直接選擇排序

#include #define maxsize 20

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

typedef char infotype[10];

typedef struct //記錄型別

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

void selectsort(rectype r,int n)

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

//調整堆

void sift(rectype r,int low,int high)

}int main()

;//a[0]空閒,不作為關鍵字

for (i=1; i<=n; i++)

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

printf("排序前:");

for (i=1; i<=n; i++)

printf("%d ",r[i].key);

printf("\n");

heapsort(r,n);

printf("排序後:");

總結:直接選擇排序時,每次從無序區中選出關鍵字最小的元素,將它與無序區第乙個元素交換,使元素分別變為新的無序區和有序區。該演算法是穩定的排序方法。

堆排序分為建立初始堆和反覆建堆兩個過程。構造初始堆時,採用大根堆,每次用最大元素歸位。反覆建堆時每次和最後乙個葉子交換。該演算法不適合元素較少的表,是不穩定的排序方法。

第十六周專案一 驗證演算法 直接選擇排序

問題及 煙台大學計算機與控制工程學院 作 者 孫麗瑋 完成日期 2016年12月9日 1 直接插入排序 2 希爾排序 3 氣泡排序 4 快速排序 5 直接選擇排序 6 堆排序 7 歸併排序 8 基數排序。include define maxsize 20 typedef int keytype 定義...

第十六周專案1(5)驗證演算法 直接選擇排序

問題及 煙台大學計算機與控制工程學院 作 者 孫啟先 完成日期 2016年12月15日 問題描述 用序列作為測試資料,驗證直接選擇排序。include define maxsize 20 typedef int keytype 定義關鍵字型別 typedef char infotype 10 typ...

第十六周專案1 (5)驗證演算法直接選擇排序

問題及 檔名稱 專案1.cpp 作 者 李曉鈺 完成日期 2016年12月16日 版 本 號 v1.0 問題描述 驗證直接選擇排序 輸入描述 無 程式輸出 測試資料 直接選擇排序 include define maxsize 20 typedef int keytype 定義關鍵字型別 typede...