【Python全栈笔记】07 [模块二] 20 Oct 冒泡排序
给出一个列表,进行冒泡排序
原理算法:
li = [52, 37, 23, 11, 3, 1, ] print(li) # 每次循环,进行一次排序,列表内数字两两比较,最大的数字排到最末尾
# 一共循环len(li) - 1 次 for i in range(len(li) - 1):
if li[i] > li[i + 1]:
temp = li[i]
li[i] = li[i+1]
li[i + 1] = temp
print(li) for i in range(len(li) - 2):
if li[i] > li[i + 1]:
temp = li[i]
li[i] = li[i+1]
li[i + 1] = temp
print(li) for i in range(len(li) - 3):
if li[i] > li[i + 1]:
temp = li[i]
li[i] = li[i+1]
li[i + 1] = temp
print(li) for i in range(len(li) - 4):
if li[i] > li[i + 1]:
temp = li[i]
li[i] = li[i+1]
li[i + 1] = temp
print(li) for i in range(len(li) - 5):
if li[i] > li[i + 1]:
temp = li[i]
li[i] = li[i+1]
li[i + 1] = temp
print(li) '''
输出的结果:
[52, 37, 23, 11, 3, 1]
[37, 23, 11, 3, 1, 52]
[23, 11, 3, 1, 37, 52]
[11, 3, 1, 23, 37, 52]
[3, 1, 11, 23, 37, 52]
[1, 3, 11, 23, 37, 52]
'''
可以看到以上排序每次步骤一致,只有一个变量(即不用对比最后一个元素)
因此,可以再设置一个变量j, 作为循环时候的变量简化操作,由此得到:
li = [52, 37, 23, 11, 3, 1, ]
print(li) for j in range(1, len(li)):
for i in range(len(li) - j):
if li[i] > li[i + 1]:
temp = li[i]
li[i] = li[i+1]
li[i + 1] = temp
print(li)
'''
结果:
[52, 37, 23, 11, 3, 1]
[37, 23, 11, 3, 1, 52]
[23, 11, 3, 1, 37, 52]
[11, 3, 1, 23, 37, 52]
[3, 1, 11, 23, 37, 52]
[1, 3, 11, 23, 37, 52]
'''
【Python全栈笔记】07 [模块二] 20 Oct 冒泡排序的更多相关文章
- Python全栈开发【模块】
Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...
- Python全栈开发【基础二】
Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...
- Python全栈day21-22-23(模块)
一,python的模块 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python ...
- 【Python全栈笔记】08 [模块二] 20 Oct 递归 -*** 待补充
递归 引入 递归的表现形式 下面是四个函数,互相调用返回结果 # 引入 递归的表现形式 def f1(): ' def f2(): r = f1() return r def f3(): r = f2 ...
- 【Python全栈笔记】03 [模块二] 16-17 Oct 函数
定义一个函数 def function_name(形式参数): 代码块 return 'Value' #如果没有写return,则默认返回None # 一个函数到return这一行就结束执行了,在re ...
- 【Python全栈笔记】01 [模块二] 14-15 Oct 运算符和字符串 4-1
编码的问题 中文版 Windows 终端是默认GBK编码格式,python2默认为ASCII编码,虽然我们注释了需要用UTF-8,但是通过命令行运行的文件如果print中文内容还是会出现乱码. Uni ...
- 【Python全栈笔记】04 [模块二] 18 Oct lambda表达式, 内置函数
lambda表达式 lambda表达式是函数的一种简化,如下面两种函数定义方法,实际上效果是一样的. 使用lambda表达式的函数,func2是函数名,lambda: 后面的123 即为返回值. de ...
- 【Python全栈笔记】05 [模块二] 19 Oct 文件的操作
文件操作 一般步骤1. 文件打开 2. 文件操作 3. 文件关闭 1. 打开文件 使用open(文件名(绝对路径), 打开模式, 编码) 文件打开的模式有: r: 只读模式(默认) w: 只写模式 ...
- 【Python全栈笔记】03 [模块二] 16-17 Oct Set 集合,三目运算
Set 集合 set - unordered collections of unique elements 创建一个set/一个空set # create a new set set1 = {1,2, ...
随机推荐
- ArcGIS Engine中数据的加载 (转)
1.加载Shapefile数据 1 IWorkspaceFactory pWorkspaceFactory; 2 IFeatureWorkspace pFeatureWorkspace; 3 IFea ...
- 整整十年 - Agent Framework for TypeScript 2.0
十年前,我发布了 Agent Framework for .NET 2.0 今天,Agent 又开始了新的旅程, 这次支持的语言是 TypeScript 2.0 上需求:init函数只能被调用一次 废 ...
- [转]细说SQL Server中的加密
简介 加密是指通过使用密钥或密码对数据进行模糊处理的过程.在SQL Server中,加密并不能替代其他的安全设置,比如防止未被授权的人访问数据库或是数据库实例所在的Windows系统,甚至是数据库所在 ...
- windows下CMake使用图文手册 Part 2
例子2:有目录的项目 我现在有个文件夹ProjectDate,有如下文件结构 E:. │ CMakeLists.txt │ ├─include │ Date.h │ └─src ...
- XE7 & IOS开发之开发账号(1):开发证书、AppID、设备、开发授权profile的申请使用,附Debug真机调试演示(XCode所有版本通用,有图有真相)
网上能找到的关于Delphi XE系列的移动开发的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 注意,以下讨论都是以&q ...
- Business Unit Lookup in Form
Just add the below code in lookup() of StringEdit control in Form to get the Business Unit Lookup: p ...
- 黑马程序员_ C语言基础之指针(三)
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 概览 指针是C语言的精髓,但是很多初学者往往对于指针的概念并不深刻,以至于学完之后随着时间的推移 ...
- su with hyphen and without - su带横杠和不带横杠
The difference between "-" and "no hyphen" is that the latter keeps your existin ...
- rman datafile恢复(归档模式)
模拟环境 1. 做操作之前先备份数据库 RMAN> run { # Hot database level 0 whole backup allocate channel t1 typ ...
- mvc图片上传到服务器
链接:http://www.lanhusoft.com/Article/406.html