方法一:(remove方法)
arr = [2, 3, 5, 6, 4, 1, 9]
#找出最小元素
def findsmallest(arr):
smallest = arr[0] #假设第一个元素为最小值
for i in range(1,len(arr)):
if arr[i] < smallest:
smallest = arr[i]
return smallest #返回列表的最小真实值
def order_arr(arr):
newarr = [] #创建空列表,为.append做准备
for i in range(len(arr)):
a = findsmallest(arr) #找出最小值
newarr.append(a) #把最小值添加到新列表
arr.remove(a) #把找到的这个值从原列表中剔除,remove接元素本身,pop接下标
return newarr
print(order_arr(arr))
方法二:(pop方法)
arr = [2, 3, 5, 6, 4, 1, 9]
#寻找最小元素的索引值
def findSmallest(arr):
smallest = arr[0]
smallest_index = 0
for i in range(1, len(arr)):
if arr[i] < smallest:
smallest_index = i #更新最小值的索引
smallest = arr[i]
return smallest_index #返回最小元素的列表索引值
# Sort array
def selectionSort(arr):
newArr = []
for i in range(len(arr)):
smallest = findSmallest(arr)
newArr.append(arr.pop(smallest)) #pop方法后跟元素当前列表最小值的索引值,arr.pop后arr列表剔除了本列表中的最小值;arr.pop(smallest)返回最小值
return newArr
print(selectionSort(arr)
# =============================================================================
# 程序运行到所遇到的第一个return即返回(退出def块),不会再运行第二个return。
#
# 要返回两个数值,写成一行即可:
#
# def a(x,y):
# if x==y:
# return x,y
#
# print a(3,3)<br><br>>>> 3,3
# =============================================================================