selection sort python 寫法
我想請教一下 selection sort python 的程式寫法目標需求:
1.能讓使用者自由輸入 5 個以上個數字進行排序
2.將排序的過程都 print 出來
3.如果要加入 wall 要如何加入,用處是什麼(非必要)
4.不使用內置函數( example : sort )
5.希望各位朋友們能註解給我看,剛學不太理解原理
6.再次感謝能抽空幫助我的朋友! 本帖最后由 傻眼貓咪 于 2021-12-22 09:30 编辑
这样可以吗?def selectionSort(*args):
arr = list(args) # 将参数变成列表
last = len(arr)
print(*arr)
for current in range(last-1): # 从位置 0 开始循环
smallest = current
for walker in range(current+1, last):
if(arr < arr): # 当发现比当前位置的元素更小的值时
smallest = walker
arr.insert(current, arr) # 将最小值插入正确位置
a = arr.pop(smallest+1) # 删除原本位置的最小值
print(*arr)
selectionSort(13, 5, 176, 89, 3)13 5 176 89 3
3 13 5 176 89
3 5 13 176 89
3 5 13 176 89
3 5 13 89 176
3 5 13 89 176 傻眼貓咪 发表于 2021-12-22 09:17
这样可以吗?
我想問一下如果是用input 的方式讓使用者自由輸入要怎麼加入 妳打的程式都很完整很感謝 caspar1 发表于 2021-12-22 14:12
我想問一下如果是用input 的方式讓使用者自由輸入要怎麼加入 妳打的程式都很完整很感謝
def selectionSort(arr):
last = len(arr)
print(*arr)
for current in range(last-1): # 从位置 0 开始循环
smallest = current
for walker in range(current+1, last):
if(arr < arr): # 当发现比当前位置的元素更小的值时
smallest = walker
arr.insert(current, arr) # 将最小值插入正确位置
a = arr.pop(smallest+1) # 删除原本位置的最小值
print(*arr)
selectionSort(list(map(int, input("enter all the numbers: ").split()))) # 输入数值以空格隔开enter all the numbers: 15 6 78 96 35 44
15 6 78 96 35 44
6 15 78 96 35 44
6 15 78 96 35 44
6 15 44 35 78 96
6 15 44 35 78 96
6 15 44 35 78 96 傻眼貓咪 发表于 2021-12-22 14:30
好感謝你 我來研究一下 太厲害了
页:
[1]