码迷,mamicode.com
首页 > 编程语言 > 详细

python初级(302) 7 列表(二)冒泡排序

时间:2019-12-22 00:31:24      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:range   遍历   循环   列表   otto   获取元素   冒泡排序   最大的   ack   

一、复习:

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

python初级(302) 7 列表(二)冒泡排序

标签:range   遍历   循环   列表   otto   获取元素   冒泡排序   最大的   ack   

原文地址:https://www.cnblogs.com/luhouxiang/p/12078774.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!