排序演算法應用一(快速、選擇、冒泡法排序)
二、設計思路
1、總體設計
1)分析程式的功能
(1)輸入10個數
(2)對10個數用三種方法進行排序
2)系統總體結構:設計程式的組成模組,簡述各模組功能。
(1)主函式輸入資料,輸出結果
(2)五個其它函式,三種不同方法(快速法選擇法冒泡法)對資料進行排序
2、各功能模組的設計:說明各功能模組的實現方法
3、設計中的主要困難及解決方案
在這部分論述設計中遇到的主要困難及解決方案。
(1) 使用「選擇法」進行排序,用函式實現並統計排序次數。
(2) 使用「quicksort」 法進行排序,用函式實現並統計排序次數。
(3) 使用「冒泡法」進行排序,用函式實現並統計排序次數
4、你所設計的程式最終完成的功能
1)說明你編制的程式能完成的功能
使資料按照一定次序(公升序或降序)排列
2)準備的測試資料及執行結果
準備測試的資料:
19 88 70 20 23 14 13 27 54 41
執行結果:
輸入10個無序的數
19 88 70 20 23 14 13 27 54 41
冒泡法排序結果為:
排序次數為11次
13 14 19 20 23 27 41 54 70 88
選擇法排序結果為:
排序次數為10次
13 14 19 20 23 27 41 54 70 88
快速法排序結果為:
排序次數為13次
13 14 19 20 23 27 41 54 70 88
press any key to continue
三、程式清單
#include<>
const int n=10;
int j1=0;
void sort1(int *a,int n冒泡法排序
void sort2(int *b,int n選擇法排序
cout<<"排序次數為"< for(i=0;i cout< cout<}
void swap(int &a,int &b交換兩個數
int partition(int array,int low,int high將陣列分成兩部分,前一部分的值均比後一部分值小
返回分界點
int key;
key=array[low];
while(low
return low;
}int sort3(int array, int low, int high快速法排序
j1++;
return j1;
} void mpjg(int array快速法結果輸出
void main()
cout<<"冒泡法排序結果為:"< sort1(a,n);
cout<<"選擇法排序結果為:"< sort2(b,n);
cout<<"快速法排序結果為:"< cout<<"排序次數為"< mpjg(c);
}(說明:程式清單中一定要有注釋。將程式中自己編寫的**列在此處,系統自動生成的**就不要列出了。程式清單部分的行間距設為1行即可。)
四、對該設計題目有何更完善的方案
1、對自己完成程式進行自我評價。
在課程設計過程中我盡自己最大努力使程式完善,儘管如此,由於自己所學有限不免有綴餘和不足,但相信隨著知識的豐富和對任務認識的加深,一定會找到更好的解決方案。
2、對課題提出更完善的方案
五、收穫及心得體會
1.自學能力有了很大的提高
2. 在老師悉心教導下提高了自己建立程式文件、歸納總結的能力
3.與同學老師的交流能力有所提高
日期: 2023年 6 月 20 日
快速排序演算法介紹
設要排序的陣列是a 0 a n 1 首先任意選取乙個資料 通常選用陣列的第乙個數 作為關鍵資料,然後將所有比它小的數都放到它前面,所有比它大的數都放到它後面,這個過程稱為一趟快速排序。值得注意的是,快速排序不是一種穩定的排序演算法,也就是說,多個相同的值的相對位置也許會在演算法結束時產生變動。一趟快...
C經典演算法 氣泡排序 選擇排序 插入排序 希爾排序
public void bubblesort int r 本趟排序未發生交換,提前終止演算法 if exchange 氣泡排序 本人用了c 開發出氣泡排序演算法。希望能為c 語言的學習者帶來一些益處。不要忘了,學語言要花大力氣學資料結構和演算法。using system namespace bubb...
初一數學,方案選擇應用題
1 一種節能燈的功率為10瓦 0.01千瓦 售價為60元 一種白熾燈的功率為60瓦,售價為3元.兩種燈的照明效果一樣,使用壽命也相同 3000小時以上 如果電費 為0.5元 千瓦 時 消費者選用哪種燈可以節省費用?2 某學校計畫在總費用2300元的限額內,利用汽車送234名學生和6名教師集體外出活動...