[问题] 关于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