选择排序
以升序为例,选择排序的基本思想是,选择一个基准数作为最小数,将剩下的数与之一一进行比较,如果有更小的数,则与基准数进行交换。基准数不断后移,重复上述步骤。
时间复杂度是O(n^2)。因为比较次数是
n−1+(n−2)+...+2+1=n∗(n−1)2
n
−
1
+
(
n
−
2
)
+
.
.
.
+
2
+
1
=
n
∗
(
n
−
1
)
2
class selSort:
list = []
def __init__(self,list):
self.list = list
def sort(self):
length = len(self.list)
for i in range(length):
lowIndex = i#一遍遍开始扫描寻找较小的元素
for index in range(i+1,length):
if self.list[index]<self.list[lowIndex]:#升序排列,找出最小的,放在前面
lowIndex = index
temp = self.list[i]
self.list[i]=self.list[lowIndex]
self.list[lowIndex]=temp
print(self.list)