文章目录
选择排序
选择排序(假设做升序排序)的主要思想是:遍历数据列表,每次选择最小的数据,其时间复杂度为:
O
(
1
2
n
2
)
=
O
(
n
2
)
O(\frac{1}{2}n^2) = O(n^2)
O(21n2)=O(n2)。
代码如下:
# 返回列表最小值的标签
def findSmallest(arr):
smallest = arr[0]
smallestIndex = 0
for i in range(1, len(arr)):
if smallest >= arr[i]:
smallest = arr[i]
smallestIndex += 1
return smallestIndex
# 对列表arr进行选择排序
def selectionSorted(arr):
newArr = []
for i in range(len(arr)):
smallestIndex = findSmallest(arr)
newArr.append(arr.pop(smallestIndex))
return newArr
print(selectionSort([5, 3, 6, 2, 10]))