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

作者: starlichin (白星羽)   2017-11-28 23:10:11
不好意思 我是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))
作者: goldflower (金色小黃花)   2017-11-28 23:38:00
如果你第一個值取到最大就GG惹你想一下3.9調換 你的function怎麼跑
作者: handsomeLin (DoGLin)   2017-11-29 04:33:00
嗨,function刮號裡的是你的參數,如果你要算average的話你要pass你return出來的東西才有辦法哦簡單來說你最上面兩行可以不用那兩個變數也行sum max都是內建函數不要拿來當變數名稱sort的function邏輯上也不太對,建議網路看一下演算法sorting的部分
作者: Blankfein (LloydBlankfein)   2017-11-29 05:14:00
O(n^2) qq
作者: tedwu2001   2017-11-29 15:19:00
如果你是要實作selection那你append跟remove放錯地方
作者: starlichin (白星羽)   2017-11-29 22:09:00
謝謝大家的解答! 成功解決了~

Links booklink

Contact Us: admin [ a t ] ucptt.com