基本思想
每一趟遍历选择出最小的元素,将该元素移动到未排序数组的最前方。
具体实现
from typing import List
def selection_sort(nums: List):
length = len(nums)
for i in range(length-1):
min_idx = i
for j in range(i+1, length):
if nums[j] < nums[min_idx]:
min_idx = j2, nums[min_idx] = nums[min_idx], nums[i]
性能分析
平均时间复杂度:
- 计算数组长度
length
: - 两次循环:
- 总计:
空间复杂度: