冒泡排序
冒泡排序的思想是,从第0个元素到第n-1个元素遍历,若前面一个元素大于后面一个元素,则交换两个元素,这样可将整个序列中最大的元素冒泡到最后,然后再从第0个到第n-2遍历,如此往复,直到只剩一个元素。
def bubble_sort(items):
for i in range(len(items)-1):
flag=False
for j in range(len(items)-1-i):
if(items[j]<items[j+1]):
temp=items[j+1]
items[j+1]=items[j]
items[j]=temp
flag=True
if not (flag):
break
return(items)
list=[2,3,1,5,6,0,9,1]
print(bubble_sort(list))
快速排序
快排的思想是,选取第一个数为基准,通过一次遍历将小于它的元素放到它的左侧,将大于它的元素放到它的右侧,然后对它的左右两个子序列分别递归地执行同样的操作。
def quick_sort(items):
if(len(items)<2):
return(items) #迭代至每个数组都小于2
mid=items[0]
left,right=[],[]
items.remove(mid)
for i in items:
if i >=mid:
right.append(i)
else:
left.append(i)
return quick_sort(left) + [mid] + quick_sort(right)
list=[2,3,1,5,6,0,9,1]
print(quick_sort(list))
插入排序
插入排序是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
def insert_sort(items):
n=len(items)
for i in range(1,n):
key=items[i]
j=i-1
while j>=0:
if(items[j]>key):
items[j+1]=items[j]
items[j]=key
j=j-1
return(items)
list=[2,3,5,6,0,9,1]
print(insert_sort(list))