Re: [閒聊] python小白問個問題

作者: erimow (Erimo)   2024-08-08 15:30:45
Write a function called "mySort" that takes an list of integers as input, and
returns the sorted version of the input list. You are not allowed to use the
built-in sorted() function.
mySort([17, 0, -3, 2, 1, 0.5]); # returns [-3, 0, 0.5, 1, 2, 17]
寫到一半問朋友
朋友告訴我氣泡排序法
def mySort(lst):
n = len(lst)
for i in range(n):
for ele in range(0, n - i - 1):
if lst[ele] > lst[ele + 1]:
lst[ele], lst[ele + 1] = lst[ele + 1], lst[ele]
print(lst)
return lst
mySort([17, 0, -3, 2, 1, 0.5])
# returns [-3, 0, 0.5, 1, 2, 17]
我這樣寫能過
但我有個問題
for ele in range(0, n - i - 1):
這句我不太懂怎麼解釋
但後面的東西我懂
我現在是一個我的code會動,但我不知道他為甚麼會動
作者: emptie ([ ])   2024-08-08 15:32:00
就 這個迴圈要執行的範圍啊 ele從0到n-i-1
作者: CP3isgood (3345678)   2024-08-08 15:32:00
就ele = 0 ~ n-i-2 各跑一次阿
作者: emptie ([ ])   2024-08-08 15:33:00
外面的迴圈i每多1 裡面的迴圈就少執行1次
作者: Wardyal (Wardyal)   2024-08-08 15:34:00
去YT看別人圖解BS的影片就懂了
作者: oin1104 (是oin的說)   2024-08-08 15:34:00
每次弄氣泡排0~n-i-1這個區間之後 這個區間會變短一個因為最後一個排好了
作者: erimow (Erimo)   2024-08-08 15:35:00
喔 懂了
作者: sustainer123 (caster)   2024-08-08 15:35:00
從0開始到n-i-2結束
作者: erimow (Erimo)   2024-08-08 15:36:00
區間短一個比較具體 想像一下就能懂
作者: sustainer123 (caster)   2024-08-08 15:36:00
你姑姑嚕bubble sort 有圖像化的講解
作者: yam276 ('_')   2024-08-08 15:40:00
巴柏搜

Links booklink

Contact Us: admin [ a t ] ucptt.com