初识算法:
冒泡排序
选择排序
插入排序
冒泡:列表每两个相邻的数,如果前边比后边的大,那么交换这两个数。
1 a = [8,4,5,9,7,1,3,2,6] 2 def bubble_sort(li): 3 for i in range(len(li)-1): #控制趟数 4 exchange = False 5 for j in range(len(li)-i-1): #循环具体的元素 6 if li[j] > li[j+1]: #前和后比大小,如果大则调换位置 7 li[j], li[j+1] = li[j+1], li[j] 8 exchange = True #如果列表顺序发生过更改则改变为True 9 if not exchange: #如果列表所有元素没发生改变过,则直接结束函数。 10 return 11 12 bubble_sort(a) 13 print(a)
上述代码将a列表按升序做了重新排序。
冒泡关键点在于【趟】和【无序区】。
趟:就是指列表的第一个元素和一边相邻的元素做对比,并交换位置,直到对比并交换所有元素之后抵达列表另一端,这叫做一趟。
无序区:指的是还没有经过对比与交换的元素区域叫做无序区。
未完待续