python零基礎入門班 |
|
王御丞
更新時間:2019/7/5 下午 03:23:37 |
|
請問 ch08\binary.py的程式範例中, for迴圈是用來將串列由小到大排列, 但是由於n=len(num)-1, 而for j in range(0,n-1)會導致串列中最後一個值無法被比對到,是否有打錯的問題?
|
|
|
|
王御丞
更新時間:2019/7/5 下午 03:41:53 |
|
CH08的綜合演練的選擇題1照題目給的程式碼所執行結果是[2,3,5,1],而解答給的是[1,2,3,5] 第六題應該是14次 |
|
|
|
文淵閣工作室
更新時間:2019/7/12 上午 10:17:09 |
|
您好: 感謝您的支持。 一、下列的泡沫排序我們測試,執行結果都正確。您是否有更佳的數據,可以測出不同的結果? datas=[3,5,2,1] n=len(datas)-1 for i in range(0,n): for j in range(0,n-i): if (datas[j]>datas[j+1]): datas[j],datas[j+1]=datas[j+1],datas[j] print(datas)
結果是:[1, 2, 3, 5]
二、二分搜尋法最多次數的答案有誤,正確應該是 int(Log2N+1)(註:2 是底標字) 以程式表達為: import math m=int(math.log(n,2)+1) print(m)
所以 n=10000 筆資料時,最多次數為 m=int(math.log(10000,2)+1)=14 次
感謝您寶貴的意見。 |
|
|
|
|
|
|