[問題] 關於list sorting (不使用內建sort)

看板Python作者 (白星羽)時間8年前 (2017/11/28 23:10), 編輯推噓4(407)
留言11則, 5人參與, 8年前最新討論串1/1
不好意思 我是Python初學者,問的問題可能很蠢很基本, 請大家包涵 我想寫一個list 的 sorting function (不用內建的sort), 並且計算該list的平均值。 以下是我目前寫的codes,但是跑的結果是甚麼都沒有,也沒有error。 可以請教問題出在哪嗎? 感謝! new_list = [] original_list=[] def sorting(original_list): while original_list: max = original_list[0] for x in original_list: if x > max: max = x new_list.append(max) original_list.remove(max) return new_list def average(new_list): sum = 0 for j in range(len(new_list)): sum += new_list[j] return sum/len(new_list) original_list=[3,9,7,4,0,2] print(sorting(original_list)) print(average(new_list)) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.225.110.107 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1511881813.A.24D.html

11/28 23:38, 8年前 , 1F
如果你第一個值取到最大就GG惹
11/28 23:38, 1F

11/28 23:39, 8年前 , 2F
你想一下3.9調換 你的function怎麼跑
11/28 23:39, 2F

11/29 04:33, 8年前 , 3F
嗨,function刮號裡的是你的參數,如果你要算average
11/29 04:33, 3F

11/29 04:33, 8年前 , 4F
的話你要pass你return出來的東西才有辦法哦
11/29 04:33, 4F

11/29 04:34, 8年前 , 5F
簡單來說你最上面兩行可以不用那兩個變數也行
11/29 04:34, 5F

11/29 04:49, 8年前 , 6F
sum max都是內建函數不要拿來當變數名稱
11/29 04:49, 6F

11/29 04:53, 8年前 , 7F
sort的function邏輯上也不太對,建議網路看一下演算
11/29 04:53, 7F

11/29 04:53, 8年前 , 8F
法sorting的部分
11/29 04:53, 8F

11/29 05:14, 8年前 , 9F
O(n^2) qq
11/29 05:14, 9F

11/29 15:19, 8年前 , 10F
如果你是要實作selection那你append跟remove放錯地方
11/29 15:19, 10F

11/29 22:09, 8年前 , 11F
謝謝大家的解答! 成功解決了~
11/29 22:09, 11F
文章代碼(AID): #1Q7NnL9D (Python)