最下面的是堆排序算法的總體 初始建堆后 用了個for循環 for(i=len;i>1;i-1) 這里i表示表長 以及元素個數 后面調用了headadjust函數 但是headadjust函數里面不是也有個for循環 判斷條件也是用i來判斷 調用一次headadjust之后 回到最先的表示表長的for循環 i不就變了嗎?怎么回事呢 如果把這兩個for里面的i其中一個換成j應該就沒問題了吧
1 回答

墨色風雨
TA貢獻1853條經驗 獲得超6個贊
注意這圖上說得很清楚,這是“算法”,并不是“代碼”,這兩者是有區別的。前者強調的是解決問題的方法,而對諸如變量聲明等細節予以忽略。有的代碼其中還可以包含“偽代碼”。
再說這不同函數中的變量,一般應認為是不同的變量(雖然它們沒有聲明,但應當為是局部變量,循環控制變量,沒有理由認為它們是全局變量的,而且也沒有相應全局變量的聲明?。?。
如果把這兩個for里面的i其中一個換成j應該就沒問題了。這樣理解也可以的。
添加回答
舉報
0/150
提交
取消