Python-选择排序

'''
选择排序算法灵巧, 但其速度不是很快, 快速排序是一种更快的排序算法

思想:
每次从原列表中取出最小的元素, 追加到新列表中, 并将取出的元素从原列表中删除, 直到原列表中没有元素时, 返回新列表
'''

# 返回列表中的最小元素索引
def findSmallest(arr):
    smallest = arr[0]  #存储最小的值
    smallest_index = 0  #存储最小元素的索引
    for i in range(1, len(arr)):
        if arr[i] < smallest:
            smallest = arr[i]
            smallest_index = i
    return smallest_index

def selectionSort(arr):
    new_arr = []
    for i in range(len(arr)):  #arr中的元素逐渐较少, 直到没有元素时, 即len(arr)为0, for循环中代码不再执行
        smallest_index = findSmallest(arr)  #每迭代一次得到最小元素的索引
        new_arr.append(arr.pop(smallest_index))  #从原列表中删除该元素, 并将该元素加入新创建的列表中
    return new_arr


# 测试
test_arr = [3, 1, 7, 5, 15, 10]
r = selectionSort(test_arr)
print(r)

猜你喜欢

转载自www.cnblogs.com/gandoufu/p/9347258.html
今日推荐