***
algorithm diary
day one
bubble sort
冒泡排序:
查看数组中相邻的成对元素,一次查看一对,如果第一个元素大于第二个元素则交换他们的位置,否则他们将继续移动。
一轮下来后,最大的数将移到最后面。
D
def bubble_sort(alist):
n=len(alist)
for i in range(n-1):
for j in range(n-i-1):
if a[j]>a[j+1]:
s=a[j]
a[j]=a[j+1]
a[j+1]=s
return(alist)
a=[1,6,4,60,9]
bubble_sort(a)
print(a)
优化点:
• 1、添加有序标记(flag),当没有元素交换时跳出循环
• 2、记录有序/无序边界,已有序的元素不需要再被进行比较,因此每轮需比较的数 列长度会减少