一、思想
选择排序的算法核心思想是从数组中选择最小的元素,放到第一个位置,再从数组 中选择第二小的元素放到第二个位置,一直到数组的最后一个元素为止。
二、逻辑
1)选择数组的第一小的元素,将其放在第一个位置
2)选择数组的第二小的元素,将其放在第二个位置
3)重复上述步骤。。。
4)选择数组的第三小的元素,将其放在第n个位置
2)选择数组的第二小的元素,将其放在第二个位置
3)重复上述步骤。。。
4)选择数组的第三小的元素,将其放在第n个位置
三、代码实现
def selectSort(arr):
length = len(arr)
for i in range(length): #选择多少次
min_value_index = i #假定最小元素的索引为i
for j in range(i+1,length): #这层循环是找最小索引
if arr[j]<arr[min_value_index]: #如果后面比最小元素还小,那么交换索引
min_value_index = j
arr[i],arr[min_value_index] = arr[min_value_index],arr[i]
return arr
arr = [-9,9,2,12,12,1293,0,20]
print(selectSort(arr))
结果:[-9, 0, 2, 9, 12, 12, 20, 1293]
四、时间复杂度
选择排序时间复杂度是
0( n的平方
)