請(qǐng)教關(guān)于冒泡排序的問題
以下是學(xué)習(xí)中遇到三個(gè)不明白的問題 , 想請(qǐng)教朋友來回答一下:
題目: 對(duì) ?10 個(gè)分?jǐn)?shù)排序.
第一個(gè) for循環(huán)中為什么要用 ?if 判斷 (i !=9 ),不是直接打印就行嗎?
冒泡排序循環(huán)外層為什么用 for(i=8;;), 等于9不行么??
還有就是所控制 ?" 每趟比較的最大下標(biāo)" 是什么意思?
(原理不是 讓 ?i = 9 然后不停對(duì)上一次排完序的數(shù)組從新排序嗎?)
?3. ? ?如 1, 為什么排序后還是要用 i !=9 ? ?
? ? 糾結(jié) ... ?希望有經(jīng)驗(yàn)的朋友能夠幫忙解惑一下 !
2015-10-18
i != 9 的時(shí)候,printf打印出的是“數(shù)字和一個(gè)空格”,當(dāng) i == 9 ,也就是最后一個(gè)數(shù)時(shí),就不打印后面的空格了。這純粹是為了打印出來好看。
看內(nèi)層循環(huán),第一次內(nèi)層循環(huán)讓第1個(gè)數(shù)依次和后面的數(shù)相比較,直至比到第10個(gè)數(shù),一共比9次。第二次內(nèi)層循環(huán)還是從第1個(gè)數(shù)開始依次向后比較,這次就不用比最后一個(gè)數(shù)了,因?yàn)榻?jīng)過上次比較后,最后一個(gè)數(shù)肯定是最大的了,所以這次一共比較8次。第三次內(nèi)循環(huán)一共比較7次......最后一個(gè)內(nèi)循環(huán)就只要比較前兩個(gè)數(shù)就可以了。 這樣內(nèi)層循環(huán)一共執(zhí)行了9次,外循環(huán)就是用來控制這9次比較的,i從8遞減到0就是9次。
和第一問一樣。