第二十七节,冒泡排序
冒泡排序必备知识
1两个变量互换值的错误方法
#!/usr/bin/env python # -*- coding:utf-8 -*- #两个变量互换值的错误方法 a = 123 b = 456 a = b #=456 b = a #=456 print(a,b) #打印出 456 456
2两个变量互换值的正确方法
#!/usr/bin/env python # -*- coding:utf-8 -*- #两个变量互换值的正确方法 a = 123 b = 456 c = a # =123 a = b #=456 b = c #=123 print(a) print(b) # 打印出 # 456 # 123
3将一个列表的元素互换位置
#!/usr/bin/env python # -*- coding:utf-8 -*- #将一个列表的元素互换位置 a = [11,22] b = a[0] # = 11 a[0] = a[1] # = 22 a[1] = b # = 11 print(a) #打印出 [22, 11]
4冒泡排序的取值方法
#!/usr/bin/env python # -*- coding:utf-8 -*- #冒泡排序取出来要排序的判断值 li = [11, 7687, 34, 99, 34678, 3456, 8759, 546] for i in range(len(li) - 1): #len检查li列表有多少个元素,将返回数-1当做参数传入range创建成循环次数 a1 = li[i] #等于每次循环到的列表索引(索引取值) a2 = li[i + 1] #等于每次循环到的列表索引加1(索引取值) print(i, a1, a2) #这样打印出来,i就是列表的索引,a1和a2就是每次循环取出来要排序的判断值 #打印出 # 0 11 7687 # 1 7687 34 # 2 34 99 # 3 99 34678 # 4 34678 3456 # 5 3456 8759 # 6 8759 546
5冒泡排序原理
#!/usr/bin/env python # -*- coding:utf-8 -*- #冒泡排序原理 li = [11, 7687, 34, 99, 34678, 3456, 8759, 546] for i in range(len(li) - 1): # len检查li列表有多少个元素,将返回数-1当做参数传入range创建成循环次数 if li[i] > li[i + 1]: # 每次循环的次数和次数加1当做列表的索引取出列表的两个元素,判断第一个元素是否大于第二个元素 huh = li[i] # 如果第一个元素大于第二个元素,将第一个元素赋值给一个变量 li[i] = li[i + 1] # 将第一个元素等于第二个元素 li[i + 1] = huh # 将第二个元素等于赋值的huh变量,这样第一元素和第二元素就进行互换位置 print(li) # 打印出 [11, 34, 99, 7687, 3456, 8759, 546, 12, 34678] #此列为进行了一遍冒泡排序,注意:有多少个元素就要进行多少遍冒泡排序见下列
6冒泡排总的流程(重点)
# -*- coding:utf-8 -*- #冒泡排总的流程(重点) li = [11, 7687, 34, 99, 34678, 3456, 8759, 546] for j in range(1, len(li)): #len检查li列表有多少个元素,将返回数当做参数传入range创建成循环次数从1开始循环 for i in range(len(li) - j): # len检查li列表有多少个元素,将返回数-1当做参数传入range创建成循环次数 if li[i] > li[i + 1]: # 每次循环的次数和次数加1当做列表的索引取出列表的两个元素,判断第一个元素是否大于第二个元素 huh = li[i] # 如果第一个元素大于第二个元素,将第一个元素赋值给一个变量 li[i] = li[i + 1] # 将第一个元素等于第二个元素 li[i + 1] = huh # 将第二个元素等于赋值的huh变量,这样第一元素和第二元素就进行互换位置 print(li) #打印出 [11, 34, 99, 546, 3456, 7687, 8759, 34678] #这样就进行了全部冒泡排序从小到大