算法1—冒泡排序(python)
基本思想:
每次比较两个相邻的元素,如果它们的顺序错误就把它们交换
过来
运行步骤:
- 比较相邻元素,将两者按照升序位置进行排列,即第一个大于第二个,将两者进行交换,若不是,则保持不变;
- 从第一对一直到结尾的最后一对,对每一对数据都进行步骤一的比较处理,并将最大的元素放在后面。这样,遍历完所有相邻元素后,整个序列的最后一个元素会是最大的数;
- 将循环缩短一位(因为最后一个元素已经是序列最大的数了),再重复步骤2的处理,得到倒数第二个大的数;
- 持续步骤3 的处理,每次将循环缩短一位,并得到本次循环中的最大的数,直到循环个数缩短为1,此时已经没有一对数据可以比较了,则得到了一个从小到大(升序)排序的序列。
总结:每次都是比较相邻的两个数,如果后面的数比前面的数小,则交换这两个数的位置。一直比较下去直到最后两个数比较完毕后,最大的数就在最后一个了。就如同是一个气泡,一步一步往后“翻滚”,直到最后一位。所以这个排序的方法有一个很好听的名字“冒泡排序”。
如下图所示:
代码实现:
def bubble_Sort(array_list):
#遍历所有数据
L = len(array_list)
for i in range(L):
#遍历所有相邻数据
for j in range(L-i-1):
if array_list[j] >= array_list[j+1]:
array_list[j],array_list[j+1] = array_list[j+1],array_list[j]
if __name__=="__main__":
arr = [12,35,99,18,76]
bubble_Sort(arr)
print ("排序后的数组:",arr)
运行结果:
排序后的数组: [12, 18, 35, 76, 99]