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中有几个元素,就循环几次; 每次取出一个最小的元素 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)