选择排序Python代码及注释

#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

你可能感兴趣的:(算法)