我想請教一下 selection sort python 的程式寫法
目標需求:
1.能讓使用者自由輸入 5 個以上個數字進行排序
2.將排序的過程都 print 出來
3.如果要加入 wall 要如何加入,用處是什麼(非必要)
4.不使用內置函數( example : sort )
5.希望各位朋友們能註解給我看,剛學不太理解原理
6.再次感謝能抽空幫助我的朋友!
def selection_sort(alist):
n = len(alist)
for j in range(n-1): # j: 0 ~ n-2,一开始整个列表都看做右边的无序部分
min_index = j # 先认为第j个元素为当前最小值,放到左边的有序部分中
for i in range (j+1, n): #i: j+1 ~ n-1,在右边的无序部分中(第j+1个到最后一个元素)
if alist[min_index] > alist[i]: #如果当前认为的最小元素比当前比较的右边无序部分中的元素要大
min_index = i # 那就令当前的min_index指向这个比它更小的元素的下标
alist[j], alist[min_index] = alist[min_index], alist[j] # 千万注意是出了寻找min_index的循环之后,再交换两个元素的位置
if __name__ == "__main__":
li = list(map(int,input().split()))
print(li)
selection_sort(li)
print(li)
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
自己百度排序法。比在这问强多了