亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

冒牌排序里的循環怎么理解

例子里排成績那個?

for (i=8;i<=0;i--)

?{ ?for(j=0;j<=i;j++) 這兩句http://img1.sycdn.imooc.com//57a2bc4b0001d6b905200600.jpg怎么理解啊...繞的不行

正在回答

4 回答

你可以模擬運行一次兩個for循環:

for(i=8;i>=0;i--)? //控制每趟比較的最大下標

第一次執行外循環,i=8,執行內循環:for(j=0, j<=i, j++)的循環條件是 j<=i 也就是 j<8,

當內嵌循環執行到 j=8;比較完 arr[8]和arr[8+1]之后,數組中最大那個數就放進最后一個arr[[9]中了,那么這個數在下一輪循環中就不用再比較了。

然后外循環執行 i--,也就是 i=8-1=7,內循環條件 j<=7,比較的最大下標就是7 即 arr[7] 和arr[7+1]比較,就不用再去和最大的arr[9]比較了

所以外循環的注釋://控制每趟比較的最大下標???


11 回復 有任何疑惑可以回復我~
#1

lzry 提問者

懂了 萬分感謝
2016-08-05 回復 有任何疑惑可以回復我~
#2

源遠流長d

hehe,最佳回答....什么是,,數組中最大那個數就放進最后一個arr[[9]中了
2016-10-24 回復 有任何疑惑可以回復我~


通過父循環確定子循環的循環大小,讓子循環執行數組中arr[j]和arr[j+1]兩元素的大小,

double arr[]={1.78, 1.77, 1.82, 1.79, 1.85, 1.75, 1.86, 1.77, 1.81, 1.80};

例如:先arr[0]與arr[1],arr[0]大放到后面,則{1.77,1.78, 1.82, 1.79, 1.85, 1.75, 1.86, 1.77, 1.81, 1.80};以此基礎上又來判斷arr[1]與arr[2],arr[2]大,則數組中元素不變為{1.77,1.78, 1.82, 1.79, 1.85, 1.75, 1.86, 1.77, 1.81, 1.80}......,直至j=i時,一定確定了最大值,就可以執行下一個父循環,每一個父循環可確定一個在范圍內的最大值,所以父循環循環完畢時,排序完成,其實有些數已經排好,父循環幫你檢查檢查。。


2 回復 有任何疑惑可以回復我~

已經懵逼

0 回復 有任何疑惑可以回復我~

nice!

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C語言入門
  • 參與學習       926904    人
  • 解答問題       21532    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

冒牌排序里的循環怎么理解

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號