【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, ...
随机推荐
- java数据传递例子+内存分析
一.引用传递 1.例子1 package com.jikexueyuan.ref; class Ref1{ int temp = 10; } public class RefDemo01 { publ ...
- C#读取Excel遇到无法读取的解决方法
C#读取Excel遇到无法读取的解决方法:1.在导入数据连接字符串中,将IMEX=1加入,“Provider=Microsoft.Jet.OLEDB.4.0;Data Source="C:\ ...
- 可分组的选择框控件(MVVM下)(Toggle样式 仿造单选框RadioButton,复选框CheckBox功能)
原地址: http://www.cnblogs.com/yk250/p/5660340.html 效果图如下:支持分组的单选框,复选框样式和MVVM下功能的实现.这是项目中一个快捷键功能的扩展. 1, ...
- spring web mvc中遇到的错误以及学习小记(持续记录)
错误:cvc-complex-type.2.4.a: 发现了以元素 'init-param' 开头的无效内容.应以 '{"http://java.sun.com/xml/ns/javaee& ...
- oracle加并行参数PARALLEL
select /*+ PARALLEL(t,4) */ * from table1
- ffmpeg relocation error
在向imx6移植ffmpeg后,一般的编解码操作没有问题,但是当从摄像头录视频时, ffmpeg -f video4linux2 -s 640*480 -r 10 -i /dev/video0 tes ...
- 13,SFDC 管理员篇 - 移动客户端
1, 自定义导航 设置导航显示内容 Setup | Mobile Administration | Salesforce Navigation 1, 可以添加和删除在mobile中显示的内容 ...
- Func<T>、Action<T> 的区别于说明
一.Func Func是一个.Net内置的委托. Func<Result>,Func<T1,Result>是一个.Net内置的泛型委托. Func<TResult> ...
- 装tomcat和nginx心得
开机启动tomcat 1:在/etc/rc.d/init.d目录下生成一个文件tomcat8080 2:在文件里添加如下内 #!/bin/bash #2345 linux运行级别 #10开机启动优先级 ...
- JuqeryResize
//添加 (function ($, h, c) { var a = $([]), e = $.resize = $.extend($.resize, {}), i, k = "setTim ...