freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告(已修改)

2025-01-30 22:34 本頁面
 

【正文】 課程設(shè)計報告數(shù)據(jù)結(jié)構(gòu)學(xué)院:軟件學(xué)院班級:11級二班學(xué)號:54110211姓名:劉海鯨輔導(dǎo)老師:劉亞波老師《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計報告姓名:劉海鯨學(xué)號:54110211實驗室:座位號:提交日期:成績:指導(dǎo)教師:劉亞波問題解析(對問題的分析、解題思路與解題方法):實驗?zāi)康臑槭刮覀儗W(xué)習(xí)完數(shù)據(jù)結(jié)構(gòu)課程后,全面深入理解數(shù)據(jù)結(jié)構(gòu)知識,掌握應(yīng)用技巧,提高應(yīng)用與分析能力,并培養(yǎng)學(xué)生綜合運用所學(xué)理論知識求解問題的能力和協(xié)作精神。解題思路(分析):題目要求獨立編寫程序,完成對起泡排序,直接插入排序,簡單選擇排序,快速排序,希爾排序,堆排序6種內(nèi)排序算法的比較,并且使用至少5組不同的輸入數(shù)據(jù)(記錄個數(shù)不小于1000個,其中包括完全正序,完全逆序和無序情況)進行排序,比較各組記錄與各種排序方法在關(guān)鍵字比較次數(shù)和關(guān)鍵字移動次數(shù)這兩個指標上的差異。因此只需對文件進行排序并計算出兩項指標針對某一組特定數(shù)據(jù)在不同排序方法中的值,既可以完成題目要求。編寫正確的排序算法,使用程序讀取不同文件,并定義變量,記錄排序過程中兩項指標的值,就是本題的解題思路。解題方法:使用Code::blocks作為本次實驗的開發(fā)工具,使用C++完成程序。首先使用數(shù)據(jù)產(chǎn)生程序來產(chǎn)生所需的5個數(shù)據(jù)文件,使用了C++中cstdlib文件中的rand()函數(shù)和srand()函數(shù)共同產(chǎn)生3組偽隨機數(shù);,(模板類),包括主要的排序函數(shù)和數(shù)據(jù)成員,來完成界面控制,數(shù)據(jù)文件讀取和排序功能的實現(xiàn),()的調(diào)用來完成整個程序。最后運行程序來完成對比較指標的統(tǒng)計并進行分析,對得出結(jié)果進行解釋。任務(wù)分工:本實驗由本人獨立完成。進度安排:為第一次實驗課將6個內(nèi)排序算法完成并調(diào)試成功,周末之前完成界面控制并對排序結(jié)果進行分析,第二次實驗之前完成課程設(shè)計報告,第二次試驗對程序結(jié)果進行最后檢查并提交實驗報告。數(shù)據(jù)結(jié)構(gòu)選擇(包括改進或給出):使用數(shù)組作為本實驗基本的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)類中包含有數(shù)組的頭指針head,在初始化時動態(tài)申請數(shù)組空間,此外還有count(整型)用于記錄數(shù)組個數(shù),同時可以對數(shù)組進行6種內(nèi)排序及顯示數(shù)組元素的操作。算法設(shè)計:借助課本與網(wǎng)絡(luò),使用C++編寫算法,詳細請看后面程序清單。編程與程序清單:1.//2.//文件數(shù)據(jù)類Data定義3. //起泡排序(升序)4. //直接插入排序(升序)5. //簡單選擇排序(升序)6. //快速排序(升序)7.//快速排序的遞歸函數(shù)8.//希爾排序 (升序)9.//插入排序(升序)10. //堆排序(升序)11.//控制類12. //功能選擇13.//主函數(shù)1.// 1.//ifndef DATA_H_INCLUDEDdefine DATA_H_INCLUDEDincludectimeincludeiostreamusing namespace std。2.//文件數(shù)據(jù)類Data定義templateclass Tclass Data{ private: T *head。 //數(shù)據(jù)數(shù)組指針,用于動態(tài)申請數(shù)組空間 int count。 //數(shù)組大小 public: //構(gòu)造函數(shù),使指針為空 Data(){head=NULL。} //用已有數(shù)組構(gòu)造數(shù)組元素,當前程序使用該函數(shù)來構(gòu)造數(shù)據(jù)元素 void copy(T *h,int c=1000) { if(head!=NULL) delete[] head。 head=h。count=c。 head=new T[count]。 for(int i=0。icount。i++) { head[i]=h[i]。 } } //手動輸入各元素,當前程序未使用,調(diào)試程序時使用! void set() { if(head!=NULL) delete[] head。 cout請輸入數(shù)據(jù)個數(shù):endl。 cincount。 head=new T[count]。 cout請輸入數(shù)據(jù):endl。 for(int i=0。icount。i++) { cinhead[i]。 } } //析構(gòu)函數(shù),回收空間 ~Data(){delete[] head。}3. //起泡排序(升序) void bSort() { if(isEmpty()){cout 文件中無記錄,無法排序!endl。return。} int pareTime=0。 //關(guān)鍵詞比較次數(shù) int moveTime=0。 //關(guān)鍵詞移動次數(shù) int bound=count。 int start,finish。 //記錄程序運行時間 T temp。 cout 正在排序...endl。 start=clock()。 //記錄初始時間 //算法主體 while(bound!=0) { int t=0。 for(int i=0。ibound1。i++) { pareTime++。 if(head[i]head[i+1]) { temp=head[i]。 head[i]=head[i+1]。 head[i+1]=temp。 t=i+1。 moveTime+=3。 //記錄交換一次移動次數(shù)加3 } } bound=t。 } finish=clock()。 cout 排序后結(jié)果為:endl。 display()。 //輸出排序后序列 coutendl *endl *關(guān)鍵詞比較次數(shù):pareTimeendl *記錄移動次數(shù):moveTimeendl *排序執(zhí)行時間:finishstartms
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1