直接插入排序、冒泡排序、快速排序—于—實驗七參考模板_第1頁
直接插入排序、冒泡排序、快速排序—于—實驗七參考模板_第2頁
直接插入排序、冒泡排序、快速排序—于—實驗七參考模板_第3頁
直接插入排序、冒泡排序、快速排序—于—實驗七參考模板_第4頁
直接插入排序、冒泡排序、快速排序—于—實驗七參考模板_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、寧德師范學院計算機系實驗報告(2014 201 5學年 第 一 學期)課程名稱數據結構實驗名稱實驗七數據的排序與檢索專 業計算機科學與技術年 級2013級學 號B2013102141姓名于指導教師毛雁明實驗日期2014-12-21 / 8實驗目的與要求:1、掌握數據結構中的幾種常用排序方法:插入排序、快速排序、選擇排序等。2、遇到實際問題能夠選擇適當的排序方法解決。實驗設備(環境):微機、C語言編程環境(VC+)實驗內容: 給定的數組listN=213, 111, 222, 77, 400, 300, 987, 1024, 632, 555,試分別用直接插入排序、冒泡排序、快速排序對上述數據進

2、行排序。 要求:每種排序算法編寫為獨立的自定義函數且要求輸出每趟排序后的數據排列序列情況。實驗步驟、實驗結果及分析:(1) 函數代碼#include<stdio.h># define n 10typedef structint key;RecType;typedef RecType SeqListn+1;void insertSort(SeqList r)int i,j;for(i=2;i<=n;i+)r0=ri;j=i-1;while(r0.key<rj.key)rj+1=rj;j-;rj+1=r0;void bubblesort(SeqList r)int i,j,

3、exchange;for(i=1;i<n;i+)exchange=0;for(j=n-1;j>=i;j-)if(rj+1.key<rj.key)r0=rj+1;rj+1=rj;rj=r0;exchange=1;if(!exchange)break;int partition(SeqList r,int i,int j)RecType pivot=ri;while(i<j)while(i<j&&rj.key>=pivot.key)j-;if(i<j)ri+=rj;while(i<j&&ri.key<=pivot

4、.key)i+;if(i<j)rj-=ri;ri=pivot;return i;void quicksort(SeqList r,int low,int high)int pivotpos;if(low<high)pivotpos=partition(r,low,high);quicksort(r,low,pivotpos-1);quicksort(r,pivotpos+1,high);main(void) int low=1,high=10;SeqList r=0,213, 111, 222, 77, 400, 300, 987, 1024, 632, 555;int i; in

5、sertSort(r);printf("直接插入排序算法:n");for(i=1;i<=n;i+)printf("%-6d",ri);printf("n");bubblesort(r);printf("冒泡排序算法:n");for(i=1;i<=n;i+)printf("%-6d",ri);printf("n"); quicksort(r,low,high);printf("快速排序算法:n");for(i=1;i<=n;i+)print

6、f("%-6d",ri);printf("n");(2) 主函數流程圖(3) 運行結果(4) 實驗總結 本實驗主要考查直接插入排序、冒泡排序、快速排序三項函數調用,難度還是有的,需要我們首先理解這三種排序方式,排序實質,然后我們就需要寫程序代碼,主函數還是很好寫的,快速排序算法代碼是個難點,還要嵌套一個調用函數需要我們在草稿紙上事先演算下,進行多次調試,達到要求。直接插入排序的方法是首先在當前有序區ri.i-1中查找人ri的正常插入位置k;然后將rk.i-1中的記錄均后移一個位置,騰出k位置上的空間插入ri。其他方法與這有點不同,畫主函數流程圖要求我們對代碼整體有個框架認識,首先動態分配空間,建立順序表,然后輸入整數進行判斷,不符合時繼續輸入整數,符合時進行選擇,然后執行功能,選擇退出時,整個程序都退出。雖然經過上學期對C語言半年的學習可以說掌握的基本可以,但是幾天不練就會手生,甚至不知如何下手,這時我們要查閱課本,通過這次實驗的練習,我在學習數據結構的同時也對C語言進行了一次復習

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論