下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)名稱:排序綜合實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康模簠⒄崭鞣N排序算法程序樣例,驗(yàn)證給出的排序常見算法。實(shí)驗(yàn)內(nèi)容:輸入一組關(guān)鍵字序列分別實(shí)現(xiàn)下列排序:實(shí)現(xiàn)簡(jiǎn)單選擇排序、直接插入排序和冒泡排序。實(shí)現(xiàn)希爾排序算法。實(shí)現(xiàn)快速排序算法(取第一個(gè)記錄或中間記錄作為基準(zhǔn)記錄)??焖倥判虻姆沁f歸算法。實(shí)驗(yàn)要求:掌握各種排序算法的特點(diǎn),測(cè)試并驗(yàn)證排序的常見算法。提交實(shí)驗(yàn)報(bào)告,報(bào)告內(nèi)容包括:目的、要求、算法描述、程序結(jié)構(gòu)、主要變量說(shuō)明、程序清單、調(diào)試情況、設(shè)計(jì)技巧、心得體會(huì)。實(shí)驗(yàn)原理直接插入排序:在線性表中只包含第一個(gè)元素的子表顯然可以看成是有序表,接下來(lái)的問題是,從線性表的第二個(gè)元素開始直到最后一個(gè)元素,逐次將其中的每一個(gè)元素插入到前面已經(jīng)有序的子表中。一般來(lái)說(shuō),假設(shè)線性表中前j-1個(gè)元素已經(jīng)有序,將第j個(gè)元素插入到前面的有序子表的方法是:首先將第j個(gè)元素放到一個(gè)變量T中,然后從有序子表的最后一個(gè)元素開始逐個(gè)與T比較,將大于T的元素均依次向后移動(dòng)一個(gè)位置,直到發(fā)現(xiàn)一個(gè)元素不大于T為止,此時(shí)就將T插入到剛移出的空位置上,有序子表的長(zhǎng)度就變?yōu)閖了。冒泡排序:首先從表頭開始往后掃描線性表,在掃描過程中逐次比較兩個(gè)相鄰元素的大小,若前面的元素大于后面的則互換,,最后將最大的元素移到了最后,然后從后到前掃描剩下的線性表,同樣掃描過程中逐次比較相鄰兩個(gè)元素的大小,若后面的元素小于前面的,則互換,最后將最小的元素移到了最前面,對(duì)剩下的線性表重復(fù)上面的過程,直到剩下的表為空,線性表有序??焖倥判颍簭木€性表中選取一個(gè)元素T,然后將線性表后面小于T的元素移到前面,而大于T的元素移到后面,結(jié)果就將線性表分成了兩部分(稱為兩個(gè)字表),T插入到分界線的位置處,如果對(duì)分割后的各子表再按上述原則將進(jìn)行分割,直到所有子表為空為止,線性表有序。堆排序:首先將一個(gè)無(wú)序序列建成堆,然后將堆頂元素(序列中的最大項(xiàng))與堆中最后一個(gè)元素交換,不考慮已經(jīng)換到最后的那個(gè)元素,只考慮前n-1個(gè)元素構(gòu)成的子序列,顯然該序列已不是堆,但左右子樹仍為堆,可以將該子序列調(diào)整為堆,重復(fù)操作,直到剩下的子序列為空為止。實(shí)驗(yàn)步驟:通過主函數(shù)選擇控制分別采用直接插入排序法、冒泡排序法、快速排序算法、快速排序的非遞歸算法、堆排序法實(shí)現(xiàn)給該組數(shù)據(jù)排序。實(shí)驗(yàn)結(jié)果:#include<iostream>#include<iomanip>usingnamespacestd;//冒泡排序template<classT>voidbub(Tp[],intn){intm,k,j,i;Td;k=0;m=n-1;while(k<m){j=m-1;m=0;for(i=k;i<=j;i++)if(p[i]>p[i+1]){d=p[i];p[i]=p[i+1];p[i+1]=d;m=i;}j=k+1;k=0;for(i=m;i>=j;i--)if(p[i-1]>p[i]){d=p[i];p[i]=p[i-1];p[i-1]=d;k=i;}}return;}//快速排序template<classT>voidqck(Tp[],intn)intm,i;T*s;if(n>10){i=split(p,n);qck(p,i);s=p+(i+1);m=n-(i+1);qck(s,m);}elsebub(p,n);return;}//表的分割template<classT>staticintsplit(Tp[],intn){inti,j,k,l;Tt;i=0;j=n-1;k=(i+j)/2;if((p[i]>=p[j])&&(p[j]>=p[k]))l=k;elseif((p[i]>=p[k])&&(p[k]>=p[j]))l=k;elsel=i;t=p[l];p[l]=p[i];while(i!=j){while((i<j)&&(p[j]>=t))j=j-1;if(i<j){p[i]=p[j];i=i+1;while((i<j)&&(p[i]<=t))i=i+1;if(i<j){p[j]=p[i];j=j-1;}}}p[i]=t;return(i);}//插入排序template<classT>voidinsort(Tp[],intn){intj,k;Tt;for(j=1;j<n;j++){t=p[j];k=j-1;while((k>=0)&&(p[k]>t)){p[k+1]=p[k];k=k-1;}p[k+1]=t;}return;}//希爾排序template<classT>voidshel(Tp[],intn){inti,k,j;Tt;k=n/2;while(k>0){for(j=k;j<=n-1;j++){t=p[j];i=j-k;while((i>=0)&&(p[i]>t)){p[j+k]=p[i];i=i-k;}p[i+k]=t;}k=k/2;}return;}//選擇排序template<classT>voidselect(Tp[],intn){inti,j,k;Td;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(p[j]<p[k])k=j;if(k!=j){d=p[i];p[i]=p[k];p[k]=d;}}return;}template<classT>voidhap(Tp[],intn){inti,mm;Tt;mm=n/2;for(i=mm-1;i>=0;i--)sift(p,i,n-1);for(i=n-1;i>=1;i--){t=p[0];p[0]=p[i];p[i]=t;sift(p,0,i-1);}return;}intmain(){inti,j;doublep1[10]={4,3,2,1,5,7,6,8,9,0};doublep2[10]={4,3,2,1,5,7,6,8,9,0};doublep3[10]={4,3,2,1,5,7,6,8,9,0};doublep4[10]={4,3,2,1,5,7,6,8,9,0};doublep5[10]={4,3,2,1,5,7,6,8,9,0};cout<<"冒泡排序前的序列:"<<endl;for(i=0;i<1;i++){for(j=0;j<10;j++)cout<<setw(5)<<p1[10*i+j];cout<<endl;}bub(p1,10);cout<<"冒泡排序后的序列:"<<endl;for(i=0;i<1;i++){for(j=0;j<10;j++)cout<<setw(5)<<p1[10*i+j];cout<<endl;}cout<<"快速排序前的序列:"<<endl;for(i=0;i<1;i++){for(j=0;j<10;j++)cout<<setw(5)<<p2[10*i+j];cout<<endl;}qck(p2,10);cout<<"快速排序后的序列:"<<endl;for(i=0;i<1;i++){for(j=0;j<10;j++)cout<<setw(5)<<p2[10*i+j];cout<<endl;}cout<<"插入排序前的序列:"<<endl;for(i=0;i<1;i++){for(j=0;j<10;j++)cout<<setw(5)<<p3[10*i+j];cout<<endl;}insort(p3,10);cout<<"插入排序后的序列:"<<endl;for(i=0;i<1;i++){for(j=0;j<10;j++)cout<<setw(5)<<p3[10*i+j];cout<<endl;}cout<<"希爾排序前的序列:"<<endl;for(i=0;i<1;i++){for(j=0;j<10;j++)cout<<setw(5)<<p4[10*i+j];cout<<endl;}shel(p4,10);cout<<"希爾排序后的序列:"<<endl;for(i=0;i<1;i++){for(j=0;j<10;j++)cout<<setw(5)<<p4[10*i+j];cout<<endl;}cout<<"選擇排序前的序列:"<<endl;for(i=0;i<1;i++){for(j=0
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024鐵路物業(yè)買賣正式協(xié)議文件版B版
- 2025年度海洋資源開發(fā)承包經(jīng)營(yíng)合同3篇
- 商品房銷售合同范本
- 2025年私募基金代持資產(chǎn)清算與分配合同3篇
- 二零二四年度專業(yè)農(nóng)場(chǎng)滅鼠及作物保護(hù)合同2篇
- 2025年度航空航天裝備采購(gòu)合同3篇
- 2025年新能源電動(dòng)車租賃及綠色出行服務(wù)合同范本2篇
- 2025版鋁?;厥绽门c環(huán)保處理服務(wù)合同4篇
- 二零二五年度環(huán)保節(jié)能設(shè)施安全生產(chǎn)合同范本3篇
- 二零二五年高速公路建設(shè)土石方供應(yīng)合同3篇
- 勞動(dòng)合同續(xù)簽意見單
- 大學(xué)生國(guó)家安全教育意義
- 2024年保育員(初級(jí))培訓(xùn)計(jì)劃和教學(xué)大綱-(目錄版)
- 河北省石家莊市2023-2024學(xué)年高二上學(xué)期期末考試 語(yǔ)文 Word版含答案
- 企業(yè)正確認(rèn)識(shí)和運(yùn)用矩陣式管理
- 分布式光伏高處作業(yè)專項(xiàng)施工方案
- 陳閱增普通生物學(xué)全部課件
- 檢驗(yàn)科主任就職演講稿范文
- 人防工程主體監(jiān)理質(zhì)量評(píng)估報(bào)告
- 20225GRedCap通信技術(shù)白皮書
- 燃?xì)庥邢薰究蛻舴?wù)規(guī)范制度
評(píng)論
0/150
提交評(píng)論