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

正文內(nèi)容

基于選擇排序方法的類模板設(shè)計(jì)與實(shí)現(xiàn)c課程設(shè)計(jì)-wenkub

2022-09-08 17:20:12 本頁(yè)面
 

【正文】 型的數(shù)據(jù)進(jìn)行排序,并 通過(guò)函數(shù) 采用不同的方法 進(jìn)行排序 。 ( 2)對(duì)有序的順序表可以采用查找效率較高的折半查找算法,而對(duì)無(wú)序的 順序表只能采用順序查找算法。 本文采用 C++語(yǔ)言實(shí)現(xiàn)了選擇排序功能,設(shè)計(jì)了模板類, 實(shí)現(xiàn)了 int 型 float 型和 char型數(shù)組的排序,設(shè)計(jì)了簡(jiǎn)單選擇排序、樹(shù)形選擇排序和堆排序的 三個(gè)函數(shù)體,采用 Visual C++ 的控制臺(tái)工程和 MFC 工程分別實(shí)現(xiàn)了各類型數(shù)組的排序,通過(guò)對(duì)兩種程序的測(cè)試結(jié)果表明:簡(jiǎn)單選擇排序是選擇排序的基礎(chǔ),而樹(shù)形選擇排序和堆排序是簡(jiǎn)單選擇排序的改進(jìn)。主要完成如下功能: ( 1) 實(shí)現(xiàn)數(shù)組數(shù)據(jù)的輸入和輸出; ( 2) 實(shí)現(xiàn)簡(jiǎn)單選擇排序功能; ( 3) 實(shí)現(xiàn)樹(shù)形選擇排序功能; ( 4) 實(shí)現(xiàn)堆排序功能; ( 5) 將每種排序功能作為類的成員函數(shù)實(shí)現(xiàn),編寫(xiě)主函數(shù)測(cè)試上述排序功能。 工作計(jì)劃與進(jìn)度安排 第 17 周:分析題目,查閱課題相關(guān)資料,進(jìn)行類設(shè)計(jì)、算法設(shè)計(jì); 第 18 周:程序的設(shè)計(jì)、調(diào)試與實(shí)現(xiàn); 第 19 周:程序測(cè)試與分析,撰寫(xiě)課程設(shè)計(jì)報(bào)告,進(jìn)行答辯驗(yàn)收。 關(guān)鍵詞: 模板類 ; 簡(jiǎn)單選擇排序 ; 樹(shù)形選擇排序 ; 堆排序 ; 控制臺(tái)工程; MFC 工程。由此可見(jiàn)排序是計(jì)算機(jī)程序設(shè)計(jì)中一種基礎(chǔ)性操 作,研究和掌握各種排序方法是非常重要的。 2 算法基本原理 ( 1) 簡(jiǎn)單選擇排序 從無(wú)序的記錄序列中選出一個(gè)關(guān)鍵字值最小的記錄存入到指定的位置。ilen。array[i]=array[j]。 ( 3) .堆排序 堆排序由建初始堆和調(diào)整堆兩個(gè)過(guò)程組成。假設(shè)完全二叉樹(shù)的第 i 個(gè)結(jié)點(diǎn)的左子樹(shù),右子樹(shù)已是堆,則對(duì)第 i 個(gè)結(jié)點(diǎn)進(jìn)行調(diào)整時(shí),需要將 r[2i].key與 r[2i+1].key之中的最大者與 r[i].key進(jìn) 行比較,若 r[i].key 較小則與之交換。 Type t。 //進(jìn)行 n1 次循環(huán),完成堆排序 for(i=len。 array[1]=t。 從問(wèn)題的需要來(lái)看 , 在模板 類 中定義三個(gè)成員函數(shù) 。定義了兩個(gè)對(duì)象分別是整型和字符型的。 void write()。 void print()。 在此定義了模板類,類中所有的成員函數(shù)和成員變量 均定義為 public 的公有類型, 是類的對(duì)外接口, 數(shù)據(jù)類型用 type 代替。ilen。array[i]=array[j]。 // 當(dāng) n是 2 的冪次時(shí) ,baseSize 是 n, 當(dāng) n不是時(shí) ,baseSize 是大于n 的最小的 2 的冪次 // 就是構(gòu)造成滿二叉樹(shù)的最下層的大小,即葉子數(shù) int i。 // 最終這棵樹(shù)會(huì)達(dá)到的大小 baseSize = 1。i n。i++) // 用 MIN_VALUE 填充 tree,直到一共有 baseSize 個(gè) { tree[treeSize i] = MIN_VALUE。 6 } n = n 1。 // 在葉子上找到最大值對(duì)應(yīng)的下標(biāo) while (tree[maxIndex] != max) { maxIndex。 7 } maxIndex /= 2。 //arrau[j]是 array[i]的左孩子 Type temp=array[i]。 if(temparray[j]) { array[i]=array[j]。 } array[i]=temp。i=1。i) //進(jìn)行 n1 次循環(huán),完成堆排序 {t=array[i]。 } } templateclass Type void SortType::write() //輸入數(shù)組 { int i,l。 len=l。i++) cinarray[i]。i=len。 成員函數(shù)對(duì)成員變量進(jìn)行操作, 實(shí)現(xiàn)排序功能,通過(guò) for( ) 循環(huán),實(shí)現(xiàn)輸入輸出數(shù)組元素的功能。 Sortint s。 cini。 switch(i) { case 1:()。 case 3:()。} else if(i==2) {()。break。break。 cout請(qǐng)選擇排序方式 : endl。 case 2:(,+1)。 default:break。 13 圖 4 建立 MFC AppWizard( exe)工程 圖 5 建立基于對(duì)話框的應(yīng)用程序 14 將對(duì)話框資源中的默認(rèn)對(duì)話框利用工具箱改造成如下界面,如圖 6 所示。 表 2 控件基本信息 控件 ID 成員變量類型 成員變量名稱 IDC_EDIT_m1~ IDC_EDIT_m5 Int m_1~m_5 IDC_EDIT_m6~ IDC_EDITm_10 Int m_6~m_10 下面是編寫(xiě)代碼的重要階段 ( 1) 簡(jiǎn)單選擇排序 int a[5]。 a[2]=m_l3。 int temp。i++) { k=i。 if(k!=i) { temp=a[k]。 m_l7=a[1]。 UpdateData(false)。 a[1]=m_l2。 char tree[50]。 int maxIndex。 baseSize=1。ilen。i++) { tree[treeSizei]=MIN_VALUE。 } len=len1。 while(tree[maxIndex]!=max) { maxIndex。 } maxIndex/=2。 m_l9=a[3]。 UpdateData(true)。 a[3]=m_l4。 int q=10。amp。 a[p]=a[j]。 {temp=a[1]。 m_l7=a[1]。 UpdateData(false)。 我將函數(shù)的聲明與定義分離,在類中聲明函數(shù),在類體外定義函數(shù),是程序清晰易讀。 本次課程設(shè)計(jì)作為編寫(xiě) Windows 程
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1