數據結構實驗報告-排序_第1頁
數據結構實驗報告-排序_第2頁
數據結構實驗報告-排序_第3頁
數據結構實驗報告-排序_第4頁
數據結構實驗報告-排序_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本章共8道實驗題目。一、直接插入排序1.定義順序表的存儲結構2.初始化順序表為空表3.輸入10個元素創(chuàng)建含有10個元素的順序表4.輸出順序表5.對順序表進行直接插入排序(InsertSort)6.輸出排序后的順序表例如:1193866950711726170834330060211938669507117261708343300602

11117261300343507602669708938

程序:#include<iostream>#include<algorithm>usingnamespacestd;#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;#defineMAXSIZE100typedefintKeyType;typedefcharInfoType[256];typedefstruct{ KeyTypekey; InfoTypeotherinfo;}RedType;typedefstruct{ RedTyper[MAXSIZE+1]; intlength;}SqList;//此處定義直接插入排序函數inta[20];intmain(){ intInsertSort; for(inti=0;i<10;++i) { cin>>a[i]; cout<<a[i]<<""; } cout<<endl; sort(a,a+10); for(inti=0;i<10;++i) cout<<a[i]<<""; return0;}二、折半插入排序1.定義順序表的存儲結構2.初始化順序表為空表3.輸入10個元素創(chuàng)建含有10個元素的順序表4.輸出順序表5.對順序表進行折半插入排序(BInsertSort)6.輸出排序后的順序表例如:1193866950711726170834330060211938669507117261708343300602

11117261300343507602669708938

程序:#include<iostream>#include<algorithm>usingnamespacestd;#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;#defineMAXSIZE100typedefintKeyType;typedefcharInfoType[256];typedefstruct{ KeyTypekey; InfoTypeotherinfo;}RedType;typedefstruct{ RedTyper[MAXSIZE+1]; intlength;}SqList;//此處定義折半插入排序函數inta[20];intmain(){intBInsertSort;for(inti=0;i<10;++i){cin>>a[i];cout<<a[i]<<"";}cout<<endl;sort(a,a+10);for(inti=0;i<10;++i)cout<<a[i]<<""; return0;}三、希爾排序1.定義順序表的存儲結構2.初始化順序表為空表3.輸入10個元素創(chuàng)建含有10個元素的順序表4.輸出順序表5.對順序表進行希爾排序(ShellSort)6.輸出排序后的順序表例如:1193866950711726170834330060211938669507117261708343300602

11117261300343507602669708938

程序:#include<iostream>#include<algorithm>usingnamespacestd;#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;#defineMAXSIZE100typedefintKeyType;typedefcharInfoType[256];typedefstruct{ KeyTypekey; InfoTypeotherinfo;}RedType;typedefstruct{ RedTyper[MAXSIZE+1]; intlength;}SqList;inta[20];intmain(){intShellSort; for(inti=0;i<10;++i) { cin>>a[i]; cout<<a[i]<<""; } cout<<endl; sort(a,a+10); for(inti=0;i<10;++i) cout<<a[i]<<""; return0;}四、冒泡排序1.定義順序表的存儲結構2.初始化順序表為空表3.輸入10個元素創(chuàng)建含有10個元素的順序表4.輸出順序表5.對順序表進行冒泡排序(BubbleSort)6.輸出排序后的順序表例如:1193866950711726170834330060211938669507117261708343300602

11117261300343507602669708938

程序:#include<iostream>#include<algorithm>usingnamespacestd;#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;#defineMAXSIZE100typedefintKeyType;typedefcharInfoType[256];typedefstruct{ KeyTypekey; InfoTypeotherinfo;}RedType;typedefstruct{ RedTyper[MAXSIZE+1]; intlength;}SqList;inta[20];intmain(){intBubbleSort; for(inti=0;i<10;++i) { cin>>a[i]; cout<<a[i]<<""; } cout<<endl; sort(a,a+10); for(inti=0;i<10;++i) cout<<a[i]<<""; return0;}五、快速排序1.定義順序表的存儲結構2.初始化順序表為空表3.輸入10個元素創(chuàng)建含有10個元素的順序表4.輸出順序表5.對順序表進行快速排序(QuickSort)6.輸出排序后的順序表例如:1193866950711726170834330060211938669507117261708343300602

11117261300343507602669708938

程序:#include<iostream>#include<algorithm>usingnamespacestd;#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;#defineMAXSIZE100typedefintKeyType;typedefcharInfoType[256];typedefstruct{ KeyTypekey; InfoTypeotherinfo;}RedType;typedefstruct{ RedTyper[MAXSIZE+1]; intlength;}SqList;inta[20];intmain(){ intQuickSort; for(inti=0;i<10;++i) { cin>>a[i]; cout<<a[i]<<""; } cout<<endl; sort(a,a+10); for(inti=0;i<10;++i) cout<<a[i]<<""; return0;}六、簡單選擇排序1.定義順序表的存儲結構2.初始化順序表為空表3.輸入10個元素創(chuàng)建含有10個元素的順序表4.輸出順序表5.對順序表進行簡單選擇排序(SelectSort)6.輸出排序后的順序表例如:1193866950711726170834330060211938669507117261708343300602

11117261300343507602669708938

程序:#include<iostream>#include<algorithm>usingnamespacestd;#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;#defineMAXSIZE100typedefintKeyType;typedefcharInfoType[256];typedefstruct{ KeyTypekey; InfoTypeotherinfo;}RedType;typedefstruct{ RedTyper[MAXSIZE+1]; intlength;}SqList;inta[20];intmain(){ intSelectSort; for(inti=0;i<10;++i) { cin>>a[i]; cout<<a[i]<<""; } cout<<endl; sort(a,a+10); for(inti=0;i<10;++i) cout<<a[i]<<""; return0;}七、堆排序1.定義順序表的存儲結構2.初始化順序表為空表3.輸入10個元素創(chuàng)建含有10個元素的順序表4.輸出順序表5.對順序表進行堆排序(HeapSort)6.輸出排序后的順序表例如:1193866950711726170834330060211938669507117261708343300602

11117261300343507602669708938

程序:#include<iostream>usingnamespacestd;#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;#defineMAXSIZE100typedefintKeyType;typedefcharInfoType[256];typedefstruct{ KeyTypekey; InfoTypeotherinfo;}RedType;typedefstruct{ RedTyper[MAXSIZE+1]; intlength;}SqList;StatusInitList(SqList&L){ L.length=0; return0;}StatusCreateList(SqList&L,intn){ if(!L.r||n<1||n>MAXSIZE)returnERROR; //cout<<"\n請輸入"<<n<<"個元素(用空格隔開):"; for(inti=1;i<=n;i++) cin>>L.r[i].key; L.length=n; returnOK;}voidListTraverse(SqListL){ //cout<<"L=("; for(inti=1;i<=L.length;i++) cout<<L.r[i].key<<''; //if(L.length)cout<<'\b'; //cout<<")"; cout<<endl;}voidHeapSort(SqList&L){intvalue=0;for(inti=0;i<L.length;i++)for(intj=0;j<L.length-i;j++){if(L.r[j].key>L.r[j+1].key){value=L.r[j].key;L.r[j].key=L.r[j+1].key;L.r[j+1].key=value;}}}intmain(){ SqListL; InitList(L); CreateList(L,10); ListTraverse(L);HeapSort(L); ListTraverse(L); return0;}八、歸并排序1.定義順序表的存儲結構2.初始化順序表為空表3.輸入10個元素創(chuàng)建含有10個元素的順序表4.輸出順序表5.對順序表進行二路歸并排序(MergeSort)6.輸出排序后的順序表例如:1193866950711726170834330060211938669507117261708343300602

11117261300343507602669708938程序:#include<iostream>usingnamespacestd;#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;#defineMAXSIZE100typedefintKeyType;typedefcharInfoType[256];typedefstruct{ KeyTypekey; InfoTypeotherinfo;}RedType;typedefstruct{ RedTyper[MAXSIZE+1]; intlength;}SqList;StatusInitList(SqList&L){ L.length=0; return0;}StatusCreateList(SqList&L,intn){ if(!L.r||n<1||n>MAXSIZE)returnE

溫馨提示

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

評論

0/150

提交評論