


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、河北工業大學計算機軟件技術基礎(VC課程設計報告學院電氣與自動化學院班級 電氣081 姓名 楊柳學號080697 成績一、題目排序算法應用一(快速、選擇、冒泡法排序)(09)二、設計思路1、總體設計1)分析程序的功能輸入一組無序數列,分別通過快速、選擇、冒泡法進行排序,使其按一定規律(由大到小或由 小到大)排列。2)系統總體結構:本程序共包括一個頭文件,八個函數(包括一個主函數,七個被調函數)。主函數主要完成對各函數的調用及結構的控制 ,七個被調函數中,包括一個輸入函數,六個排序函數。2、各功能模塊的設計:I.主函數模塊:主要通過對各函數的調用實現相應的要求。n .輸入函數模塊:主要通過循環的
2、方法實現對一維數組的輸入。川.排序函數模塊:通過循環方法實現對一維數組有序排列。3、設計中的主要困難及解決方案1)由于沒有學過快速法排序,在編寫程序時遇到困難,總是調試不成功。在圖書館借到關于快 速法排序算法的書,認真閱讀與思考并應用于程序,終于編好程序。2)對同一個數組進行三次排序,第二、三次排序前數組已經有序,達不到分別排序的目的。解 決方案是將原數組復制到另外兩個數組中去,分別排序。3) 由于之前并未涉及過有關多文件函數的編寫及處理問題,導致在創新設計開始時絲毫沒有頭 緒。主要通過對實驗教程 P15內容的仔細閱讀與思考而學會并應用于程序的編寫當中去。4、我所設計的程序最終完成的功能1 )
3、所編程序可以完成對無序數組的升序、降序排序并分別統計排序次序。2 )準備的測試數據如下:7676493627使用選擇法降序拆序后的數列為:9?627279749怦擇法的降序搟序次序為:3 底用快速法降序排序后的數列為:9?決速法的降序排序次序為:5SE第曹證宦蔣序排序后的數冒泡法的降序排序次序為汚升序排列為;使用曽泡哇并序排序后的數列為:13 冒泡法的升序排序次序為也余用選擇法升序排序后的數列為:13g擇法的升序排序次序為二&使用決速法升序排序后的數列為:燈快速法的升序排序次序為二賞49 38 65 97 76 13 27運行結果12<J三、程序清單本程序包含 main, cpp
4、、in put.cpp、bubblesort.cpp、select ion sort.cpp、quicksort.cpp、bubble.cpp、 selection.cpp、quick.cpp、keshe.h 九個文件。1、main.cpp文件清單#i nclude"keshe.h"void mai n()int seque nceN, n3=0,aN,bN,x,cN,dN,eN;cout<<"請輸入"<<N<<"個整數:"<<endl;in put(seque nce);輸入無序數組c
5、out<<"輸入的無序數列為:";for(int i=0;i<N;i+)cout<<sequencei<<'t: /輸出無序數組,便于同排序后比較cout<<e ndl;for(i=0;i<N;i+)ai=bi=ci=di=ei=seque ncei;/將輸入的數組復制給另外兩個數組,使三次分別對原輸入的數組排序cout<<"降序排列為:n"bubblesort(seque nce);通過冒泡法進行降序排序cout<<e ndl;selectio nsort(a)
6、; 通過選擇法進行降序排序cout<<e ndl;quicksort(b,0,N-1,&n3); 通過快速法進行降序排序cout<<"使用快速法降序排序后的數列為:";for(i=0;i<N;i+)cout<<bi<<'t:cout<<endl<<"快速法的降序排序次序為:"<<n3<<endl; 對快速法的降序排序結果進行輸出cout<<"n"<<"升序排列為:n"bubb
7、le(c); /通過冒泡法進行升序排序cout<<e ndl;selectio n(d); /通過選擇法進行升序排序cout<<e ndl;quick(e,0,N-1,&n3); 通過快速法進行升序排序cout<<"使用快速法升序排序后的數列為:";for(i=0;i<N;i+)cout<<ei<<'t'cout<<endl<<"快速法的升序排序次序為:"<<n3<<endl; 對快速法的升序排序結果進行輸出2、inp
8、ut.cpp文件清單#i nclude"keshe.h"void in put(i nt s)for(int i=0;i<N;i+)cin> >si;3、 bubblesort.cpp文件清單#i nclude"keshe.h"void bubblesort(i nt s)int i,j,t, n1=0;for(i=0;i<N-1;i+)for(j=0;j<N-1-i;j+)if(sj<sj+1)t=sj;sj=sj+1;sj+1=t;n1+;統計排序次序cout<<"使用冒泡法降序排序后的數列為
9、for(i=0;i<N;i+)cout<<si<<'t::"< <n 1<<e ndl;cout<<endl<<"冒泡法的降序排序次序為4、 selectionsort.cpp文件清單#i nclude"keshe.h"void select ion sort(i nt s)int i,j,k,t ,n 2=0;for(i=0;i<N;i+)k=i;for(j=i+1;j<N;j+)if(sj>sk)k=j;if(k!=i)t=si;si=sk;sk=
10、t;n2+;統計排序次序cout<<"使用選擇法降序排序后的數列為for(i=0;i<N;i+)cout<<si<<'t::"<<n 2<<e ndl;cout<<endl<<"選擇法的降序排序次序為5、quicksort.cpp文件清單#i nclude"keshe.h"void quicksort(i nt s,i nt low,i nt high,i nt *p)int i=low,j=high,t,x;t=slow;while(i<j
11、)while(i<j&&sj<=t)j-;if(i<j)x=sj;sj=t;si=x;(*p)+; 統計排序次序while(i<j&&si>t)i+;if(i<j)x=si;si=t;sj=x;(*p)+; 統計排序次序if(low<i-1)quicksort(s,low,i-1,p);if(j+1<high)quicksort(s,j+1,high,p);6、bubble.cpp文件清單#i nclude"keshe.h"void bubble(i nt s)int i,j,t, n1=0;f
12、or(i=0;i<N-1;i+)for(j=0;j<N-1-i;j+) if(sj>sj+1) t=sj;sj=sj+1;sj+1=t;n 1+; /統計排序次序cout<<"使用冒泡法升序排序后的數列為:";for(i=0;i<N;i+)cout<<si<<'t:cout<<endl<<"冒泡法的升序排序次序為:"<<n 1<<endl;7、 selection.cpp文件清單#i nclude"keshe.h"voi
13、d select ion (i nt s)int i,j,k,t ,n 2=0;for(i=0;i<N;i+)k=i;for(j=i+1;j<N;j+)if(sj<sk)k=j;if(k!=i)t=si;si=sk;sk=t;n2+;統計排序次序cout<<"使用選擇法升序排序后的數列為:"for(i=0;i<N;i+)cout<<si<<'t'cout<<endl<<"選擇法的升序排序次序為:"<<n2<<endl;8、quick
14、.cpp文件清單#i nclude"keshe.h"void quick(i nt s,i nt low,i nt high,i nt *p) int i=low,j=high,t,x;t=slow;while(i<j)while(i<j&&sj>=t)j-;if(i<j)x=sj;sj=t;si=x;(*p)+; 統計排序次序while(i<j&&si<t)i+;if(i<j)x=si;si=t;sj=x;(*p)+; 統計排序次序if(low<i-1)quick(s,low,i-1,p);i
15、f(j+1<high)quick(s,j+1,high,p);9、keshe.h文件清單#in clude<iostream.h>const int N=7;void in put(i nt s);void bubblesort(i nt s);void select ion sort(i nt s);void quicksort(i nt s,i nt,i nt, in t*p);void bubble(i nt s);void select ion (i nt s);void quick(i nt s,i nt, in t,i nt*p);四、對該設計題目有何更完善的方案1、對自己完成程序進行自我評價。對于這個程序,我很滿意,畢竟這是我一周以來辛勤勞動的成果,這一周我往返于機房,圖書 館,宿舍,不斷地完善自己的課題,雖然過程中有過困難,但是更多的是完成后的欣悅。對于一個 初學者來說,這個程序難免有不盡如人意的地方,不過我會再接再厲,爭取更大的進步。2、對課題提出更完善的方案1 )與用戶交流的程序較少,應加強此方面的設計。2)由于實際生活中的問題更加復雜,所以將此程序完善為可以錄入結構體,會更加實用。五、收獲及心得體會1、收獲通過本次課程設計,我對循環的使用以及對函數的調用掌握得更加扎實,對
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現貨交割倉庫管理制度
- 甜品公司采購管理制度
- 生產場所人員管理制度
- 94年財務管理制度
- cf游戲管理制度
- 業余訓練管理制度
- 嚴格著裝管理制度
- 個人用車管理制度
- 中醫器械管理制度
- 中醫院會議管理制度
- 儀器儀表制造職業技能競賽理論題庫
- 網絡服務器配置與管理(微課版) 教案 項目02 虛擬化技術和VMware-2
- 稅收分析試題及答案
- 2025年西式面點師(中級)面包烘焙實操考試試卷
- 回遷樓房買賣合同協議書
- 新課程理念下語文課堂教學體系重建
- 從技術革新到應用拓展:高效便捷三維人體重建的多維探索
- 2025年湖南省中考數學模擬試卷(二)
- 國家開放大學2025年《創業基礎》形考任務3答案
- 廣東省大灣區2025屆普通高中畢業年級聯合模擬考試(二)化學(含答案)
- 《成本會計學(第10版)》課后參考答案 張敏
評論
0/150
提交評論