选择排序分析
- 输入: 长度为
length
的无序数组 - 输出: 长度为
length
的升序数组 - 原理
- 从第一个数开始, 遍历至数组的最后一项,取出最小值,与第一项交换
- 从第二个数遍历至数组的最后一项,取出最小项,与第二项交换
- 以此类推
- 直到遍历至最后一个元素,完成排序,得到升序数组
图解
例: [4, 9, 3, 5, 0, 2]
代码实现
def select_sort(arr):
for i in range(0, len(arr) - 1):
min_index = i + 1
for j in range(i+1, len(arr)):
if arr[min_index] > arr[j]:
min_index = j
if arr[i] > arr[min_index]:
temp = arr[i]
arr[i] = arr[min_index]
arr[min_index] = temp
return arr
if __name__ == '__main__':
result = select_sort([6, 5, 4, 3, 2, 1])
print(result)