數(shù)據(jù)結構實驗報告——排序.docx
《數(shù)據(jù)結構實驗報告——排序.docx》由會員分享,可在線閱讀,更多相關《數(shù)據(jù)結構實驗報告——排序.docx(11頁珍藏版)》請在匯文網(wǎng)上搜索。
1、1實驗要求【實驗目的】 學習、實現(xiàn)、對比各種排序算法,掌握各種排序算法的優(yōu)劣,以及各種算法使用的情況。【實驗內容】使用簡單數(shù)組實現(xiàn)下面各種排序算法,并進行比較。排序算法: 1、插入排序 2、希爾排序3、冒泡排序4、快速排序5、簡單選擇排序6、堆排序(選作)7、歸并排序(選作)8、基數(shù)排序(選作)9、其他要求: 1、測試數(shù)據(jù)分成三類:正序、逆序、隨機數(shù)據(jù)2、對于這三類數(shù)據(jù),比較上述排序算法中關鍵字的比較次數(shù)和移動次數(shù)(其中關鍵字交換計為3次移動)。 3、對于這三類數(shù)據(jù),比較上述排序算法中不同算法的執(zhí)行時間,精確到微秒(選作)4、對2和3的結果進行分析,驗證上述各種算法的時間復雜度編寫測試main
2、()函數(shù)測試線性表的正確性。2. 程序分析2.1 存儲結構 存儲結構:數(shù)組r1r2 ri-1 ri ri+1 rn有序區(qū) 無序區(qū) 圖8-1 直接插入排序的基本思想圖解插入到合適位置2.2 關鍵算法分析/插入排序void InsertSort(int r, int n)int count1=0,count2=0;for (int i=2; in; i+) r0=ri; /設置哨兵for (int j=i-1; r0rj; j-) /尋找插入位置rj+1=rj; /記錄后移rj+1=r0;count1+;count2+;for(int k=1;kn;k+)coutrk ;coutendl;cout
3、比較次數(shù)為 count1 移動次數(shù)為 count2=1; d=d/2) /以增量為d進行直接插入排序for (i=d+1; i0 & r0rj; j=j-d)rj+d=rj; /記錄后移d個位置rj+d=r0;count1+;count2=count2+d;count1+;for(i=1;in;i+)coutri ;coutendl;cout比較次數(shù)為 count1 移動次數(shù)為 count2endl;r1r2 ri-1 ri ri+1 rn有序區(qū) 無序區(qū) 圖8-1 直接插入排序的基本思想圖解插入到合適位置/起泡排序void BubbleSort(int r, int n)int temp;in
4、t exchange;int bound;int count1=0,count2=0; exchange=n-1; /第一趟起泡排序的范圍是r1到rnwhile (exchange) /僅當上一趟排序有記錄交換才進行本趟排序bound=exchange; exchange=0; for(int j=0;jrj+1) temp=rj;/交換rj和rj+1rj=rj+1;rj+1=temp;exchange=j;/記錄每一次發(fā)生記錄交換的位置count2=count2+3;/移動了3次for(int i=1;in;i+)coutri ;coutendl;cout比較次數(shù)為 count1 移動次數(shù)為
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 數(shù)據(jù)結構 實驗 報告 排序