思路:
从未排序序列中找到最小(最大),放在已排序序列尾部
代码:
class xuanze:
def sort(self, nums):
# 每次选择最小值加入到已排好序的末尾
for i in range(len(nums)):
k = i # 设置一个最小值的tag
for j in range(i+1,len(nums)):
if nums[k] > nums[j]: # 选择最小的进行标注为k标志
k = j
temp = nums[k] # 最小值交换到第i位置上
nums[k] = nums[i]
nums[i] = temp
print(nums)
return nums
x = xuanze()
x.sort(nums=[2,5,3,7,4,8])
# 时间复杂度 O(n^2)
# 空间复杂度 O(n)
时间复杂度 O(n^2)
空间复杂度 O(1)
ps:希、快、简、堆 不稳定