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

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)課程設(shè)報(bào)告—各種排序算法的比較(文件)

2025-08-08 12:23 上一頁面

下一頁面
 

【正文】 單選擇排序:快速排序:堆排序:歸并排序:退出排序: 收獲和體會:在進(jìn)行為期一個(gè)星期的課程設(shè)計(jì)中,最終完成了算法。對于各種排序算法的過程還是不夠熟悉,進(jìn)行編程時(shí)還需要翻書查找,對于這一點(diǎn),只能說對數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)還不夠扎實(shí),還需要在以后的學(xué)習(xí)中多多注意C++語言的學(xué)習(xí)和數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識。從這點(diǎn)看,說明自己的程序還是不夠完善,不能做到十全十美,希望以后能有所修正。int num=0。//存儲數(shù)據(jù)元素的向量(排序表) sortlist():currentsize(0){arr=new type[maxsize]。} ~sortlist(){delete []arr。x=y。//快速排序 void insertionsort()。//堆排序 void mergesort(sortlisttype amp。sourcetable,sortlisttypeamp。mergedtable,const int left,const int mid,const int right)。 for(int i=1。 while(j=0amp。} arr[j+1]=temp。t++) coutarr[t] 。 int left,right。right=i1。 else left=mid+1。 arr[left]=temp。t++) coutarr[t] 。 int finish=0。//排序結(jié)束標(biāo)志置為,假定已經(jīng)排好序 for(int j=0。 }//排序結(jié)束標(biāo)志置為,表示本趟發(fā)生了交換,說明還沒有排好序 i++。t++) coutarr[t] 。 for(int i=0。jcurrentsize。 for(int t=0。 } num=0。amp。} while(ijamp。j。tcurrentsize。//在左子區(qū)間遞歸進(jìn)行快速排序 quicksort(i+1,high)。 while(j=currentsize1) { if(jcurrentsize1 amp。 else{arr[i]=arr[j]。 }template class typevoid sortlisttype::heapsort(){ int tablesize=currentsize。 //初始建堆 for(int i=currentsize1。 filterdown(0)。t++) coutarr[t] 。}template class typevoid sortlisttype::merge(sortlisttypeamp。amp。} else{[k]=[j]。q=mid。p++,q++) [p]=[q]。 while(i+2*len=currentsize1)//表示至少有個(gè)子序列 { merge(sourcetable,mergedtable,i,i+len1,i+2*len1)。j=currentsize1。tcurrentsize。table ){//按數(shù)據(jù)元素關(guān)鍵字非遞減的順序?qū)ε判虮韙able中數(shù)據(jù)元素進(jìn)行遞歸排序 sortlisttype temptable。 mergepass(temptable,table,len)。 char ch,cc。cout 3 冒泡排序 4 簡單選擇排序 endl。 cout\n請輸入您需要的排序種類(鍵入對應(yīng)的代號):。) {cout 您已成功退出該系統(tǒng)!endl。 if(ch=39。ch=39。 cout\n請輸入n個(gè)數(shù):。i++) {cinnumber。: cout\n███████您選擇的是直接插入排序███████\nendl。 break。 ()。 case 39。 break。439。 system(pause)。: cout\n███████您選擇的是快速排序███████\nendl。 break。 ()。 case 39。 break。 return 0。 break。: cout\n███████您選擇的是歸并排序███████\nendl。 system(pause)。639。 break。 case 39。 ()。 break。: cout\n███████您選擇的是冒泡排序███████\nendl。 system(pause)。239。 break。} switch(ch) { case 39。 for(int i=0。) {cout\n請輸入所需排序的個(gè)數(shù):。amp。 return 0。 if(ch==39。cout 7 歸并排序 0 退出排序程序 endl。 while(c!=0){cout███████████████請選擇排序的方法███████████████endl。 } num=0。 while(lencurrentsize) { mergepass(table,temptable,len)。 coutendl。 if(len=currentsize1) {if(numcurrentsize) { cout第++num趟排序結(jié)果為:。 } if(i+len=currentsize1)//若只有最后兩個(gè)子序列 merge(sourcetable,mergedtable,i,i+len1,currentsize1)。sourcetable,sortlisttypeamp。//把前一段復(fù)制到mergedtable else for(int p=k,q=j。k++。i++。mergedtable,const int left,const int mid,const int right){ int i=left,j=mid+1,k=left。 } num=0。 for(int t=0。i) { swap(arr[0],arr[i])。i=0。j=2*j+1。 arr[j]arr[j+1]) j++。//j為i的左孩子 int tablesize=currentsize。 coutendl。//將基準(zhǔn)元素就位 cout第++x趟排序結(jié)果為:。temp=arr[i])i++。 if(ij){swap(arr[i],arr[j])。 type temp=arr[low]。t++) coutarr[t] 。//k 指示當(dāng)前序列中最小者的位置 if(k!=i)//最小關(guān)鍵字的數(shù)據(jù)元素位置不等于i swap(arr[i],arr[k])。i++) { k=i。 } num=0。 for(int t=0。j++) if(arr[j]arr[j+1])//逆序 { swap(arr[j],arr[j+1])。amp。 } num=0。 for(int t=0。k=left。 while(left=right)//找插入位置 { int mid=(le
點(diǎn)擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1