python基础-冒泡排序算法

目录

一、需求分析

二、编程思想

2.1 需求分析

2.2 需求分解

2.3 设计思路以及流程图

2.4 程序实现

三、总结


我的飞书知识库空间文章地址:
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):

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值