#Author:Anthony def findSmallest(arr):#寻找最小值 smallest=arr[0]#初始默认0索引位置的值为最小值 smallest_index=0#索引 for i in range(1,len(arr)):#去除0索引位置仍需比较len(arr)-1次,且i代表索引 if smallest>arr[i]:#判断当前最小值与索引为i处的值的大小 smallest=arr[i]#当 smallest>arr[i]时,就将arr[i]处的值设为最小值 smallest_index=i#最小值所对应的索引值 return smallest_index#返回最小值的索引 def seclectSort(arr):#选择排序 newArr=[]#首先建立一个空数组,存放排序后的数组 for i in range(len(arr)):#循环len(arr)次 smallest=findSmallest(arr)#每次循环时调用findSmallest(),得出数组arr中的最小值的索引 smallest_value=arr.pop(smallest)#将索引所对应的最小值从arr中移除,则smallest_value就是本次循环最小值,arr为去除本次循环最小值后的数组,并挂起 newArr.append(smallest_value)#将最小值添加到newArr中,则newArr中的元素从小到大依次排列 return newArr#返回选择排序后的数组 instance=[2,6,8,7,5,4,9]
result=seclectSort(instance)
print(result)
pop()是list对象中定义的一个方法,用于取出一个元素并且删除它
>>>a = [1, 2, 3]
>>>b = a.pop(1)
>>>a
>>>[1, 3]
>>>b
>>>2