冒泡排序的思想就是两两比较,不断的最大/最小的数放到最后面。
Python
def bubble(lst):
for i in range(len(lst)):
flag = False
for j in range(len(lst)-i-1):
if lst[j] > lst[j+1]:
lst[j], lst[j+1] = lst[j+1], lst[j]
flag = True
if not flag:
break
return lst
插入排序的思想是将数据分为已排序区和未排序区,然后不断的从未排序区中取出一个元素有序的插入到已排序区中。
Python
def insert_sort(lst):
for i in range(1, len(lst)):
value = lst[i]
for j in range(i-1, -2, -1):
if lst[j] > value:
lst[j+1] = lst[j]
else:
lst[j] = value
break
return lst
def insert_sort(lst):
for i in range(1, len(lst)):
key = lst[i]
j = i
while j > 0 and lst[j-1] > key:
lst[j] = lst[j-1]
j = j-1
lst[j] = key
return lst
选择排序的思想与插入排序类似,也是将数据分为已排序区和未排序区,然后不断的从未排序区中选择出最小/最大的放到已排序区的最后面。
Python
def select_sort(lst):
for i in range(len(lst)):
for j in range(i+1, len(lst)):
if lst[j] < lst[i]:
lst[j], lst[i] = lst[i], lst[j]
return lst
原文:https://www.cnblogs.com/leisurelylicht/p/11-mao-pao-cha-ru-xuan-ze.html