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

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

时间: 2024-08-01 03:58:48

python初级(302) 7 列表(二)冒泡排序的相关文章

python初级(302) 5 列表

一.复习 1.函数的创建 1) def关键字 2) 函数名及后面跟随的括号 3)冒号加上函数体 2.函数的调用 函数名及后面跟随的括号 3.带一个,二个,三个参数的函数及调用 二.列表 family = ['Mom', 'Dad', 'Baby'] nums = [1, 2, 3, 4] 列表:一堆数据存在一起,放在某种组或者集合中1.创建列表: a = list() b = [1, 2, 3, 4] 2.向列表增加元素 a.append(4) b.append(100) 注意:必须确保增加元素

python初级(302) 3 easygui简单使用二

一.复习 1.easygui 信息提示对话框 2.easygui 是否对话框 二.easygui其它组件 1.选择对话框:choicebox(msg, title, choices) import easygui as g msg = "输入你喜欢的颜色" title = "游戏互动" choices = ["红色", "绿色", "蓝色", "青色"] choice = g.choic

python初级(302) 6 对象

函数可以把收集一些代码,列表可以收集变量(数据),对象可以把函数和数据收集在一起. 一.真实世界中的对象: 以篮球为例:通过颜色,大小,重量,价格等来描述一个球,这些就是球的属性,属性也叫(特性):一个物品(对象)本来就有的东西. 球拿到手,我们需要玩,比如捡球,抛球,拍球或者充气.我们把这些操作称为动作. 真实世界的真实对象(物品)包括两个方面 1.如何描述(属性或特性) 2.可以对它做什么(或是它自己能做什么)(动作) 二.Python中的对象 1.一些概念 在Python中,一个对象的特征

python初级(302) 1 环境搭建及简单使用

一.安装anaconda(python环境) 1 地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=A 选择Anaconda3-5.3.1-Windows-x86_64.exe下载安装 2 安装 一路默认点击安装,在Advanced Options时,增加选中Add Anaconda to the system PATH environment variable选项,然后再一路默认安装完成 如下图 3 验证安装成功 打

python的序列之列表二

注:本文测试环境为 python2.7 注:本文主要介绍列表的通用方法 注:以下为个人学习笔记,一字一句敲出来的,仅供参考 测试list list1 = [1,2,3,4] insert方法: 方法解释:在指定位置插入对象 参数: 参数1:index 参数2:object 代码示例: list1.insert(-1,1) #在列表末尾插入对象 list1.insert(0,1) #在列表开头插入对象 返回值:无 注:方法执行后,直接修改原列表list1 pop方法: 方法解释:删除指定索引的元素

Python 初级 6 循环 (二)

一.复习 1 for循环 for looper in [1, 2, 3, 4]: print("hello") 1) 每次循环开始,会依次把列表中的数按顺序赋值给looper,第一次looper为1,第二次为2,第三次为3,第四次为4 2) 每赋一次值,就会把下面指令块的所有工作执行一遍,这个指令块也叫循环体 3) 每次执行完后,变量looper会赋上列表中下一个值,直到赋完为止 2 break跳出 3 range()函数 1)range(1, 5)表示的为列表[1, 2, 3, 4]

Python练习题4(列表去重):[5,3,4,'ok',4,3,'abc',8,52,'ok']去除列表中重复内容 方法一:使用set 方法二:不使用set,自己写方法

方法一:利用集合去重 1 list1 = [5,3,4,'ok',4,3,'abc',8,52,'ok'] 2 list1=list(set(list1)) 3 print(list1) 方法二:此方法略微冗余,先判断元素是否重复,再将重复元素提取并保存到新列表中,再for 新建的列表元素,删除原列表 1 def list_dup(ls): 2 list2 = [] 3 length = len(ls) #获取列表元素个数 4 for i in range(0,length-1): 5 for

Python开发【第二十二篇】:Web框架之Django【进阶】

Python开发[第二十二篇]:Web框架之Django[进阶] 猛击这里:http://www.cnblogs.com/wupeiqi/articles/5246483.html 博客园 首页 新随笔 联系 订阅 管理 随笔-124  文章-127  评论-205 Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻

进击的Python【第五章】:Python的高级应用(二)常用模块

Python的高级应用(二)常用模块学习 本章学习要点: Python模块的定义 time &datetime模块 random模块 os模块 sys模块 shutil模块 ConfigParser模块 shelve模块 xml处理 re正则表达式 一.Python模块的定义 有过C语言编程经验的朋友都知道在C语言中如果要引用sqrt这个函数,必须用语句"#include<math.h>"引入math.h这个头文件,否则是无法正常进行调用的.那么在Python中,如

python基础之数据类型(二)

Python3 元组 Python 的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 不可变的tuple有什么意义?因为tuple不可变,所以代码更安全.如果可能,能用tuple代替list就尽量用tuple. 定义:与列表类似,只不过[]改成()特性: 1.可存放多个值2.不可变3.按照从左到右的顺序定义元组元素,下标从0开始顺序访问,有序 基本操作: 索引 切片 循环 长度 包含 lass tu