选择排序法
选择排序法,遍历列表中的所有元素,然后每次从剩下的元素中拿出最小的元素,并将拿出来的元素放在正确的位置上。。。。。长此以往。
选择排序的时间复杂度为O(n**2)
def SelectSort(data):
for i in range(len(data)-1):
minindex = i
for j in range(i+1,len(data)):
if data[j] < data[minindex]:
minindex = j
if minindex != i:
data[i],data[minindex] = data[minindex],data[i]
return data
if __name__ == '__main__':
data = [5,2,1,3,6,4]
print(SelectSort(data))
插入排序法
插入排序法,它在列表较低的一端维护一个 有序的子列表,并逐个讲每个新元素“插入”这个子列表。
相关原理请参照
https://www.runoob.com/python3/python-insertion-sort.html
插入排序的时间复杂度为O(n**2)
def SelectSort(data):
for i in range(len(data)-1):
minindex = i
for j in range(i+1,len(data)):
if data[j] < data[minindex]:
minindex = j
if minindex != i:
data[i],data[minindex] = data[minindex],data[i]
return data
if __name__ == '__main__':
data = [5,2,1,3,6,4]
print(SelectSort(data))
冒泡排序法
def bubbleSort(alist):
for passnum in range(len(alist)-1,0,-1):
for i in range(passnum):
if alist[i] > alist[i+1]:
temp = alist[i]
alist[i] = alist[i+1]
alist[i+1] = temp
return alist
def shortbubleSort(alist):
passnum = len(alist) -1
exchanges = True
while passnum>0 and exchanges:
exchanges = False
for i in range(passnum):
if alist[i] > alist[i+1]:
alist[i],alist[i+1]=alist[i+1],alist[i]
exchanges = True
passnum = passnum-1
本人也是初学,有疑问可加QQ1297716447,说明来意,互相交流学习。