1.概念理解:冒泡排序是在两个相邻元素之间进行比较交换的过程将一个无序表变成有序表,可以是升序或降序排列。
2.问题分析:
冒泡排序的思想:如将一个无序数列从小到大的顺序进行排列,首先,从表头开始往后扫描数列,在扫描过程中逐对比较相邻两个元素的大小。若相邻两个元素中,前面的元素大于后面的元素,则将它们互换。在扫描过程中,不断地将两相邻元素中的大者往后移动,最后就将数组中的最大者换到了表的最后,这正是数列最大元素应有的位置。然后,在剩下的数列元素中(n-1个元素)重复上面的过程,将次小元素放到倒数第2个位置。不断重复上述过程,直到剩下的数列元素为0为止,此时的数组就变为了有序。
3.算法设计:
从整个冒泡排序过程中寻找规律,n个元素只需比较n-1次即可。假设一个数组中有8个元素,现在对这8个元素进行排序,只需比较7轮即可得到所要的有序序列。
4.程序框架程序流程图:
5.程序代码
使用python程序代码进行编写:
# -*-coding:utf-8 -*-list01=[22,39,15,60,57,48,1]deflist_paixu():fori inrange(len(list01)):forj inrange(1,len(list01)-i):iflist01[j]
运行结果:
下面有一个整数数列
[22, 39, 15, 60, 57, 48, 1]
输入一个整数,会按由小到大的规律将它插入数组中
请输入一个整数:50
新数列是:
[1, 15, 22, 39, 48, 50, 57, 60]
6.python程序代码分析:
deflist_paixu():fori inrange(len(list01)): #检查数列个数(0开始)forj inrange(1,len(list01)-i): #检查相邻(1开始)iflist01[j]
7.问题拓展常用的排序方法除了上述的冒泡法还有选择排序、插入排序、快速排序和堆排序等,不同排序法的效率是不同的,不同需求情况下可选择不同的方法。