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

正文內(nèi)容

數(shù)據(jù)結構課程設計(23606)(完整版)

2025-07-31 07:23上一頁面

下一頁面
  

【正文】 ): 多種排序摘 要: 排序是算法中最基礎的問題之一,經(jīng)典的排序算法是前人不斷總結得到的,基于比較的方法是比較直觀的方式,主要存在插入法排序、堆排序、希爾排序、歸并排序、快速排序,每一種排序算法都有自己的優(yōu)缺點,比如插入法排序適用于那些長度短的排序,要是長的話,有些愛莫能助啦,堆排序主要是依據(jù)了二叉堆的特性,但是創(chuàng)建堆的過程也是一個復雜的問題,希爾排序的過程是一個不斷精確的過程,但是目前也只是一個經(jīng)驗方式。課 程 設 計 說 明 書課程名稱: 數(shù)據(jù)結構和算法 設計題目: 多種排序 院 系: 計算機科學與信息工程學院 學生姓名: 學 號: 專業(yè)班級: 計科嵌入式(121) 指導教師: 年 月 日課 程 設 計 任 務 書設計題目表達式計算程序設計學生姓名所在院系計科專業(yè)、年級、班12計科(嵌入式)設計要求:1) 采用如下七種方法實現(xiàn)上述問題求解:插入排序、希爾排序、起泡排序、快速排序、選擇排序、堆排序、歸并排序。歸并排序是一個遞歸的問題,采用分治的思想實現(xiàn),但是這種算法需要額外的存儲空間,快速排序雖然是實踐中比較常用的算法,但是對于有序的數(shù)組采用快速排序就是災難。直接插入的基本操作是將當前無序區(qū)的一個記錄R[i]插入到有序區(qū)R[0?i1]中適當?shù)奈恢?(4) 快速排序 在待排序的數(shù)組的n個元素中取一個元素(一般取第一個),將其移動到這樣的位置:在其之前的元素的值都小于它,在其之后的元素都大于它,這樣是一趟快速排序;然后對數(shù)組的兩個部分進行同樣的操作,直到每部分只有一個記錄為止;總之,每趟使表的第一個元素放在適當位置,將表兩分,再對兩子表進行同樣的遞歸劃分,直至劃分的子表長度為1。 功能模塊分析1. 數(shù)據(jù)輸入:采取隨機函數(shù)實現(xiàn)輸入數(shù)據(jù)表。i++) { data_array[i]=rand()%10000000。i) printf(%d%s,data_array[i],i!=1? :\n)。 printf(——————————————————— \n)。 printf( * \n)。 printf(*******************************************\n)。 printf(————$ $————— \n)。 printf(請選擇:\n)。 printf(請選擇:\n)。 temp=a[min]。amp。 while(i=mamp。i++) a[first+i]=temp[i]。 delete[] p。 if(rchild=sizeamp。i)//非葉節(jié)點最大序號值為size/2 HeapAdjust(a,i,size)。 //重新調(diào)整堆頂節(jié)點成為大頂堆 }}(5) 冒泡排序:void maopao(){ int temp。 }}(6) 插入排序:void charu(){ int i,j。amp。 if(!t) outnew0()。最后在編寫每一個函數(shù)之前,可以仔細斟酌比對,挑選出最適合當前狀況的算法。 在這次的數(shù)據(jù)結構課程設計中,我此次的題目是各種排序,排序實際上是編程設計中應用比較廣泛的知識,通過本次設計,我對一些基本的內(nèi)部排序有了很好的理解和掌握,并且通過此次課程設計中的程序運行結果很好的理解了排序各種算法的穩(wěn)定性和時間復雜度,既鞏固了課堂上學到的排序理論,又為自己的編程增強了實踐。 scanf(%d,amp。 old[i]=data_array[i]。i=data_num。idata_num。 for (j=i。}//冒泡排序void maopao(){ int temp。 }}//選擇排序void chose_sort(int a[],int n){ int min,temp。 a[min]=a[i]。 if(rchild=sizeamp。i)//非葉節(jié)點最大序號值為size/2 HeapAdjust(a,i,size)。 //重新調(diào)整堆頂節(jié)點成為大頂堆 }}//快速排序可以選擇用algorithm里的sort排序實現(xiàn)void kuaisu1()//快速排序1{ printf(快速排序:\n)。in。 }}void ShellSort(int* a,int n){ int d=n/2。 } while(i=m) temp[k++]=a[i++]。 __merge(a,first,mid,last,temp)。 printf(** . ..... . . ..... **\n)。 printf(ADDRESS: 604 AYIT\r\n\n\n)。 printf( * 520 * \n)。 printf(——————請輸入指令———————— \n)。 printf(————$ $————— \n)。n)。 if(t==1) outnew3()。 case 4://希爾排序 printf(希爾排序:\n)。 case 5://插入排序 charu()。 else outnew2()。 break。 printf(請選擇:\n)。 return 0。 default:printf(\n選項輸入有誤,請重試!\n\n)。t)。 printf(————********************————— \n)。 case 7://冒泡排序 printf(冒泡排序:\n)。 case 6://選擇排序 printf(選擇排序:\n)。jdata_num。 break。 break。 printf(————$ $————— \n)。 printf(————$ $————— \n)。 printf( * 使用 * \n)。 printf(——————各種排序比較————————— \n)。 printf(** . . . . . ..... **\n)。 if(p==NULL) return false。 for(i=0。 d=d/2。 int temp=a[i]。 if(!t) outnew0()。 BuildHeap(a,size)。a[rchild]a[max]) max=rchild。 }}//堆排序void HeapAdjust(int *a,int i,int size)//調(diào)整堆{ int lchild=2*i。in。i=data_num。amp。}//插入排序void charu(){ int i,j。}//排序后數(shù)據(jù)輸出 從大到小 data_num1 0int outnew2(){ printf(排序后的結果為:)。 }}//排序后數(shù)據(jù)輸出 從大到小 data_num 1int outnew0(){ printf(排序后的結果為:)。 srand(NULL)。也讓自己對數(shù)據(jù)結構這門課程有了更好的認識,相信在越來越多的嘗試之后,自己會不斷進步不斷提高的。這樣無形中就提高了自己編寫的程序的質量。}
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1