目录
我的飞书知识库空间文章地址:
https://ir6elb7gt2.feishu.cn/wiki/wikcnJbuGBiU2IriVnjcLvw9Hfc?office_edit=1
一、需求分析
-
冒泡排序:一串无序数字通过比较交换变为有序数列
-
算法设计:实现两个数字交换,实现数列排序
-
python语法知识:
-
触类旁通:for循环算法
二、编程思想
2.1 需求分析
冒泡排序
-
任一给定一些数据,按大小顺序进行重新排列
2.2 需求分解
-
V1.0 两个数相比较,大的放后面,小的放前面
-
V2.0 完成一趟比较
-
V3.0 完成多趟比较
2.3 设计思路以及流程图
2.4 程序实现
-
V1.0 两个数相比较,大的放后面,小的放前面
-
# V1.0 两个数相比较,大的放后面,小的放前面 a = input('请输入a') # 输入一个数a b = input('请输入b') # 输入一个数b print("a=", a, "b=", b) if(a>b): Tmp = a a = b b = Tmp print("a=", a, "b=", b) # 满足if条件才会执行该语句 print("a=", a, "b=", b) # 不管是不是符合if条件都会执行该语句 #a=6,b=2,执行程序 D:\WMM_Python2\1_PythonBasic\venv\Scripts\python.exe D:/WMM_Python2/1_PythonBasic/aric/bubbleSort1.py 请输入a6 请输入b2 a= 6 b= 2 a= 2 b= 6 a= 2 b= 6 #a=3,b=8,执行程序 D:\WMM_Python2\1_PythonBasic\venv\Scripts\python.exe D:/WMM_Python2/1_PythonBasic/aric/bubbleSort1.py 请输入a3 请输入b8 a= 3 b= 8 a= 3 b= 8
-
V2.0 完成一趟比较
-
# V2.0 完成一趟比较 b = [9, 8, 5, 4, 9] ble = len(b) print("列表b长度:", ble) for i in range(0, ble-1): if b[i] > b[i+1]: tmp = b[i] b[i] = b[i+1] b[i+1] = tmp print('第', i+1, "次比较:", b) D:\WMM_Python2\1_PythonBasic\venv\Scripts\python.exe D:/WMM_Python2/1_PythonBasic/aric/bubbleSort2.py 列表b长度: 5 第 1 次比较: [8, 9, 5, 4, 9] 第 2 次比较: [8, 5, 9, 4, 9] 第 3 次比较: [8, 5, 4, 9, 9] 第 4 次比较: [8, 5, 4, 9, 9]
-
V3.0 完成多趟比较
# V3.0 完成多趟比较
b = [9, 8, 5, 4, 9]
ble = len(b)
print("未排序列表:", b)
print("列表b长度:", ble)
for j in range(0, ble-1):
for i in range(0, ble-1):
if b[i] > b[i+1]:
tmp = b[i]
b[i] = b[i+1]
b[i+1] = tmp
# print('第', i+1, "次比较:", b)
print('第', j+1, "趟比较:", b)
print("排序后列表:", b)
D:\WMM_Python2\1_PythonBasic\venv\Scripts\python.exe D:/WMM_Python2/1_PythonBasic/aric/bubbleSort3.py
未排序列表: [9, 8, 5, 4, 9]
列表b长度: 5
第 1 趟比较: [8, 5, 4, 9, 9]
第 2 趟比较: [5, 4, 8, 9, 9]
第 3 趟比较: [4, 5, 8, 9, 9]
第 4 趟比较: [4, 5, 8, 9, 9]
排序后列表: [4, 5, 8, 9, 9]
三、总结
总结本次技术应用中可积累的代码和经验
需求分析:两个数的比较
-
如何进行数据的输入:input
-
如何进行比较:if a > b:
-
如何进行交换:tmp=a a=b b=tmp
需求分析:一趟比较
-
最大的数放在后面,如何设置多个数,b = [9, 8, 5, 4, 9] b[0]=9 b[1]=8 ... ...
-
判断一共有多少个数? ble = len(b)
-
第i个数和第i+1个数进行相比较 b[0] <--> b[1] b[1] <--> b[2] b[2] <--> b[3] b[3] <--> b[4] for i in range(0,ble-1):
-
打印列表 print("排序后列表:", b)
需求分析:多趟比较
-
要排几趟:b = [9, 8, 5, 4]
9 8,9
5,8,9
4,5,8,9
b = [4, 5, 8, 9]
-
判断一共有多少个数? ble = len(b),需要排ble-1次
for j in range(0,ble-1):