我試圖找到一種方法來正確循環排序列表。排序列表不使用.sort()
我有這個至今:
def min_sorted(xs):
Min= xs[0]
minsorted= list()
for x in xs:
if x < (Min):
Min= x
minsorted.append(Min)
remove_val_once(x,xs)
return minsorted
當我使用xs=[5,3,4,2,1]
測試,這是什麼來:
>>> min_sorted([5,3,4,2,1])
[3, 2, 1]
什麼是發生在5和4
我的代碼minval(xs):
def minval(xs):
min_= xs[0]
for x in xs[1:]:
if x < min_:
min_=x
return min_
我的remove_val_once代碼:
def remove_val_once(val,xs):
for i in range(len(xs)):
if val==xs[i]:
del(val)
return True
break
if val!=xs[i]:
return False
什麼'remove_val_once'的定義是什麼? – jwodder
'remove_val_once()'做什麼?仔細觀察'Min'的第一個值會發生什麼?你從來沒有做過任何事情。 –
您不能使用單個循環對數組進行排序。你可以做的最好的是O(n log n)時間。 – wvdz