![課件數(shù)據(jù)結(jié)構(gòu)_第1頁](http://file4.renrendoc.com/view/6d4a2a5ec0ef9354dd4359c6c820438b/6d4a2a5ec0ef9354dd4359c6c820438b1.gif)
![課件數(shù)據(jù)結(jié)構(gòu)_第2頁](http://file4.renrendoc.com/view/6d4a2a5ec0ef9354dd4359c6c820438b/6d4a2a5ec0ef9354dd4359c6c820438b2.gif)
![課件數(shù)據(jù)結(jié)構(gòu)_第3頁](http://file4.renrendoc.com/view/6d4a2a5ec0ef9354dd4359c6c820438b/6d4a2a5ec0ef9354dd4359c6c820438b3.gif)
![課件數(shù)據(jù)結(jié)構(gòu)_第4頁](http://file4.renrendoc.com/view/6d4a2a5ec0ef9354dd4359c6c820438b/6d4a2a5ec0ef9354dd4359c6c820438b4.gif)
![課件數(shù)據(jù)結(jié)構(gòu)_第5頁](http://file4.renrendoc.com/view/6d4a2a5ec0ef9354dd4359c6c820438b/6d4a2a5ec0ef9354dd4359c6c820438b5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、數(shù) 據(jù) 結(jié) 構(gòu)Data Structure測繪學院遙感系2014年11月C綜合設計實例第十一章11.1 起泡排序11.2 劃分數(shù)組元素11.3 折半查找11.4 刪除重復數(shù)據(jù)11.5 Josephus問題11.6 洗牌11.7 三天打魚兩天曬網(wǎng)11.1起泡排序?qū)?shù)組元素進行從小到大排序,步驟如下:第1趟起泡:從數(shù)組最后一個元素到第一個元素掃描。如果當前元素小于前一個元素,則交換。第2趟起泡:從數(shù)組最后一個元素到第二個元素掃描。如果當前元素小于前一個元素,則交換。依次類推,最多進行n-1趟起泡(n是元素個數(shù)),就可實現(xiàn)排序。第 趟排序第 趟排序13453535#includevoid Bubbl
2、e(*a,n)i, j, t;for(i = 0; i i; j-)if(aj aj - 1) t = aj - 1; aj - 1 = aj; aj = t; void Pr(for( pr*a,n)i = 0; i = t & j i) j-;if(j i) ai+ = aj; while(ai = t & i j) i +; if(i j) aj- = ai;ai = t; return i;11.3折半查找已知數(shù)組元素從小到大排列,查找某一元素是否在-1。數(shù)組中。如果在,返數(shù)組下標,否則返 令low和high分別指向數(shù)組第一個和最后一個元素,重復執(zhí)行和,直到low大于high; 取居中
3、的元素下標mid,數(shù)組元素被分為前后兩個部分; 將查找的元素與mid指向的元素比較,如果相等,則返回mid,否則如果前者小于后者,則把搜尋范半部分(high = mid - 1),否則把搜圍限制尋范圍限制在后半部分(low = mid + 1)。-1。 返回回回Binary(*a,n,item)low = 0, high = n - 1, mid; while(low high)mid = (low + high)/2;if (item = amid) return mid;elseif (item amid) high = mid - 1; else low = mid + 1;return
4、 -1;11.4刪除重復數(shù)據(jù)從頭依次選定數(shù)組中的一個元素,將選定的元素與其后的所有元素比較,如果相同就刪除后者。void Purge(*a,*n)i, j ,k;for(i = 0; i *n-1; i+)j = i + 1;while(j *n)if(aj = ai)for(k = j + 1; k *n; k+)ak-1 = ak;(*n)-;else j+;11.5JosePhus問題n個人圍坐一圈,從開始報數(shù),沿順時針方向數(shù)到m,最后數(shù)到的人被淘汰。然后接下去數(shù),數(shù)到m,再淘汰一人。重復上述過程,直到剩下1人為止。步驟如下: 建立一個長為n的數(shù)組a,順序1到n表示n個人; 從第一個人開
5、始報數(shù); 用i表示開始報數(shù)的人,每數(shù)m個數(shù)淘汰一個人(n自減1),則下一個開始報數(shù)的人為i = (i + m - 1)%n。如果淘汰的正好是最后一個人,則下一輪從第一個人開始報數(shù)。 重復執(zhí)行步驟,直到n等于1。void Josephus(n,m)i, j, *a;a = (*)malloc(n*sizeof();if(a = NULL) exit(1);for (i = 0; i 1)i = (i + m - 1)%n;prf(%-4d, ai);for (j = i + 1; j n; j+)aj - 1 = aj;n-;if (i = n) i = 0;prf(n%dn, a0);free
6、(a);11.6洗牌首先定義一個結(jié)構(gòu),每的花色與點數(shù):pips;struct Card char suit;然后定義一個長度為52的結(jié)構(gòu)數(shù)組,并將52入該數(shù)組:struct Card deck52; for (i = 0; i 52; i+)decki.suit = i/13 + 3; decki.pips = i%13 + 1;存最后編寫洗牌函數(shù),通過循環(huán),將每與隨機選定的一調(diào)換:void Shuffle(struct Card *pa,n)i, j; struct Card temp; srand(time(0); for (i = 0; i n; i+)j = rand()%n; tem
7、p = pai; pai = paj; paj = temp;程序11.1 洗牌#include #include #include struct Card char suit;pips; ;void Display(struct Card*pa, void Shuffle(struct Card*pa, void main(void)n);n);struct Card deck52;for(i = 0; i 52; +i) decki.suit = i / 13 + 3; decki.pips = i % 13 + 1;prf(before shuffling:n); Display(dec
8、k, 52);Shuffle(deck, 52);prf(after shuffling:n); Display(deck, 52);void Display(struct Card*pa,n)for(i = 0; i n; i+)prf(%c%-2d), pai.suit, pai.pips);if(i + 1) % 13 = 0) prf(n);void Shuffle(struct Card*pa,i, j;struct Card temp; srand(time(0);for (i = 0; i n; i+)n)j = rand()%n; temp = pai;pai = paj;pa
9、j = temp;11.7三天打魚,兩天曬網(wǎng)一個人從某年1月1日起,三天打魚,兩天曬網(wǎng)。編寫程序,計算他在以后的某年某月某日,是打魚還是曬網(wǎng)。算法:計算兩個日期之間相差的天數(shù),將天數(shù)對5求余,余數(shù)為1、2、3則表示在打魚,余數(shù)為4、0表示在曬網(wǎng)。具體計算時,假設起始日期是,計算日期是年。計算時需要注意判斷閏程序11.2 三天打魚,兩天曬網(wǎng)#include #define StartYear 2000IsLeapYear(y);m,Total(y,d);void main(void)yr, mo, da, count;prf(Enter Date (yyyy=%d mm dd): , StartYear);scanf(%d%d%d, &yr, &mo, &da); count = Total(yr, mo, da);if(count % 5 0 & count % 5 4) prf(fishingn);else prf(slengn);Total(y,m,d)a12 = 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31;yr, mo, ndays = 0;for(yr = StartYe
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 部審人教版七年級數(shù)學下冊聽評課記錄《5.2.1 平行線》2
- 人教版地理七年級上冊第二節(jié)《地球的運動》聽課評課記錄3
- 湘教版數(shù)學八年級上冊4.1《不等式》聽評課記錄
- 人教版地理八年級下冊7.2《魚米之鄉(xiāng)-長江三角洲地區(qū)》聽課評課記錄2
- 用戶體驗設計服務協(xié)議書(2篇)
- 環(huán)境整治用功協(xié)議書(2篇)
- 人教部編版八年級道德與法治上冊:8.1《國家好 大家才會好-國家利益的含義》聽課評課記錄
- 【人教版】河南省八年級地理上冊3.2土地資源聽課評課記錄1新版新人教版
- 新版華東師大版八年級數(shù)學下冊《17.3.2一次函數(shù)的圖象2》聽評課記錄22
- 北京課改版歷史八年級上冊第3課《第二次鴉片戰(zhàn)爭》聽課評課記錄
- 《一句頂一萬句》讀書分享
- 《公有云服務架構(gòu)與運維》高職全套教學課件
- 2024義務教育數(shù)學新課標課程標準2022版考試真題附答案
- 110kV變電站專項電氣試驗及調(diào)試方案
- 2024年廣西桂盛金融信息科技服務有限公司招聘筆試沖刺題(帶答案解析)
- 外賣星級(商家評分)計算表
- DZ∕T 0215-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 煤(正式版)
- 外出檢查病人突發(fā)呼吸心跳驟停應急預案演練
- 《火力發(fā)電廠汽水管道設計規(guī)范+DLT+5054-2016》詳細解讀
- 幕墻施工成品及半成品保護措施
- 基于單片機的交通燈控制系統(tǒng)設計畢業(yè)論文
評論
0/150
提交評論