版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù) 據(jù) 結(jié) 構(gòu)Data Structure測(cè)繪學(xué)院遙感系2014年11月C綜合設(shè)計(jì)實(shí)例第十一章11.1 起泡排序11.2 劃分?jǐn)?shù)組元素11.3 折半查找11.4 刪除重復(fù)數(shù)據(jù)11.5 Josephus問題11.6 洗牌11.7 三天打魚兩天曬網(wǎng)11.1起泡排序?qū)?shù)組元素進(jìn)行從小到大排序,步驟如下:第1趟起泡:從數(shù)組最后一個(gè)元素到第一個(gè)元素掃描。如果當(dāng)前元素小于前一個(gè)元素,則交換。第2趟起泡:從數(shù)組最后一個(gè)元素到第二個(gè)元素掃描。如果當(dāng)前元素小于前一個(gè)元素,則交換。依次類推,最多進(jìn)行n-1趟起泡(n是元素個(gè)數(shù)),就可實(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ù)組下標(biāo),否則返 令low和high分別指向數(shù)組第一個(gè)和最后一個(gè)元素,重復(fù)執(zhí)行和,直到low大于high; 取居中
3、的元素下標(biāo)mid,數(shù)組元素被分為前后兩個(gè)部分; 將查找的元素與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刪除重復(fù)數(shù)據(jù)從頭依次選定數(shù)組中的一個(gè)元素,將選定的元素與其后的所有元素比較,如果相同就刪除后者。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個(gè)人圍坐一圈,從開始報(bào)數(shù),沿順時(shí)針方向數(shù)到m,最后數(shù)到的人被淘汰。然后接下去數(shù),數(shù)到m,再淘汰一人。重復(fù)上述過程,直到剩下1人為止。步驟如下: 建立一個(gè)長(zhǎng)為n的數(shù)組a,順序1到n表示n個(gè)人; 從第一個(gè)人開
5、始報(bào)數(shù); 用i表示開始報(bào)數(shù)的人,每數(shù)m個(gè)數(shù)淘汰一個(gè)人(n自減1),則下一個(gè)開始報(bào)數(shù)的人為i = (i + m - 1)%n。如果淘汰的正好是最后一個(gè)人,則下一輪從第一個(gè)人開始報(bào)數(shù)。 重復(fù)執(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洗牌首先定義一個(gè)結(jié)構(gòu),每的花色與點(diǎn)數(shù):pips;struct Card char suit;然后定義一個(gè)長(zhǎng)度為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),將每與隨機(jī)選定的一調(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)一個(gè)人從某年1月1日起,三天打魚,兩天曬網(wǎng)。編寫程序,計(jì)算他在以后的某年某月某日,是打魚還是曬網(wǎng)。算法:計(jì)算兩個(gè)日期之間相差的天數(shù),將天數(shù)對(duì)5求余,余數(shù)為1、2、3則表示在打魚,余數(shù)為4、0表示在曬網(wǎng)。具體計(jì)算時(shí),假設(shè)起始日期是,計(jì)算日期是年。計(jì)算時(shí)需要注意判斷閏程序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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度工業(yè)垃圾處理合同:廢物回收與循環(huán)利用規(guī)定2篇
- 2025年無紡環(huán)保袋環(huán)保認(rèn)證與市場(chǎng)推廣合作協(xié)議3篇
- 二零二五年房產(chǎn)代持稅務(wù)籌劃合同3篇
- 2025年銑刨料運(yùn)輸、加工及土地整治工程合同3篇
- 2025版企業(yè)英語培訓(xùn)兼職外教協(xié)議書樣本3篇
- 2025年度鋁灰綜合利用技術(shù)合作合同4篇
- 物業(yè)管理服務(wù)2025年度維修基金合同3篇
- 二零二五版物流園區(qū)供氣服務(wù)合同正規(guī)范本3篇
- 2025年度智慧城市建設(shè)與運(yùn)營(yíng)管理合同3篇
- 二零二五年度科研機(jī)構(gòu)實(shí)驗(yàn)室設(shè)備借用及知識(shí)產(chǎn)權(quán)保護(hù)合同3篇
- 我的家鄉(xiāng)瓊海
- (2025)專業(yè)技術(shù)人員繼續(xù)教育公需課題庫(附含答案)
- 《互聯(lián)網(wǎng)現(xiàn)狀和發(fā)展》課件
- 【MOOC】計(jì)算機(jī)組成原理-電子科技大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 2024年上海健康醫(yī)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫及答案解析
- 2024年湖北省武漢市中考語文適應(yīng)性試卷
- 非新生兒破傷風(fēng)診療規(guī)范(2024年版)解讀
- EDIFIER漫步者S880使用說明書
- 皮膚惡性黑色素瘤-疾病研究白皮書
- 從心理學(xué)看現(xiàn)代家庭教育課件
- C語言程序設(shè)計(jì)PPT(第7版)高職完整全套教學(xué)課件
評(píng)論
0/150
提交評(píng)論