python初级(302) 7 列表(二)冒泡排序
一、复习:
1、如何创建一个空列表,如何创建一个有数据的列表
2、列表可以包含的内容
3、从列表中获取元素和修改元素的方法
4、列表的分片
5、增加元素和删除元素
6、选择排序的算法:
一堆数据,每次找出最小的放入新数组,然后原数组中的数删除,直到原数组为空
二、冒泡排序
一堆数据,从左向右,每次比较相邻两个数,前一个比后一个大,就交换位置,然后继续比较,一直比较到最大的那个排到最后。然后再次遍历数组,这次最后那个已经排好了,所以只需要比到倒数第二个,以此类推
数据: arr = [9, 7, 8, 4]:
第一次大循环:
1 [7, 9, 8, 4]
2 [7, 8, 9, 4]
3 [7, 8, 4, 9]
第二次大循环:
1 [7, 8, 4, 9]
2 [7, 4, 8, 9]
第三次大循环:
[4, 7, 8, 9]
程序如下:
def maopao(arr): """ 冒泡排序 """ # arr = [9, 7, 8, 4] n = len(arr) for i in range(n-1): for j in range(n-i-1): if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] return arr my_arr = [9, 7, 8, 4] print(my_arr) maopao(my_arr) print(my_arr)
三、课后作业
用冒泡排序将班级学生的数学成绩进行排序(从高到低排序)
95, 98, 97, 100, 80, 93, 99