吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1258|回复: 31
收起左侧

[学习记录] 对10个数进行排序

[复制链接]
甜萝 发表于 2022-5-31 22:11
本帖最后由 paypojie 于 2022-5-31 22:26 编辑

题目的原始地址  https://www.runoob.com/python/python-exercise-example37.html

题目:对10个数进行排序。

一般来说 看题目如果有思路的话 不会第一时间去搜索相关解析 而是直接去编辑器里写 或者看看案例怎么写的  然后自己动手写
看完案例后 我写下了第一行
[Python] 纯文本查看 复制代码
if __name__ == '__main__':

这行代码的意思是 只有这段代码是模块自身执行时 才会执行if下的代码块 如果是被其他模块引用的 就不会执行
https://www.zhihu.com/question/49136398 知乎的分享 今天晚上刷到的 大数据真强 下午写的 晚上就刷到了

然后定义一个变量N N的值为10 再定义一个变量L L的值为空列表
[Python] 纯文本查看 复制代码
    N = 10
    L = []

接下来 写一个for循环 for循环的次数由N决定 由第一行代码可知 N为10 for循环下的缩进语句要求用户输入内容 然后往空列表添加这些内容
[Python] 纯文本查看 复制代码
    for i in range(N):
        yonghu = int(input('请输入数字: '))
        L.append(yonghu)

随后 再写一个for循环
[Python] 纯文本查看 复制代码
# 外层循环
for k in range(N):

下面为内层循环 内层循环的意思是 循环0次到N-k-1次 表示N的值减去当前正在遍历的元素索引 再减一 表示10减掉已经排好序的元素个数再减1 为什么要减1呢 因为要为后面的条件判断做准备 如果当前循环的索引所对应的值比后面的索引对应的值大 那就交换 也就是说 前者大于后者 前者就变成后者的值 后者变成前者的值
# 内层循环
[Python] 纯文本查看 复制代码
        for k in range(0,N-k-1):
            # if L[k] < L[k+1]:
            #     L[k],L[k+1] = L[k+1],L[k]
            if L[k] > L[k+1]:
                L[k],L[k+1] = L[k+1],L[k]

完整代码
[Python] 纯文本查看 复制代码
if __name__ == '__main__':
    N = 10
    L = []
    print('请输入十个数: ')
    for i in range(N):
        yonghu = int(input('请输入数字: '))
        L.append(yonghu)
    for k in range(N):
        # print(min1)
        # j = k
        for k in range(0,N-k-1):
            # if L[k] < L[k+1]:
            #     L[k],L[k+1] = L[k+1],L[k]
            if L[k] > L[k+1]:
                L[k],L[k+1] = L[k+1],L[k]
    print(L)

写的很一般 献丑啦



免费评分

参与人数 2吾爱币 +1 热心值 +2 收起 理由
起飞了 + 1 谢谢@Thanks!
为之奈何? + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 甜萝 发表于 2022-5-31 22:13
本帖最后由 paypojie 于 2022-6-1 12:53 编辑

每条评论都回复 限制回帖了 要一小时后才能回帖
纸莺鸢梦 发表于 2022-5-31 22:29
唯爱丶雪 发表于 2022-5-31 22:29
dmxayjn 发表于 2022-5-31 22:35
冒泡算法确实厉害
Fris 发表于 2022-5-31 22:59
list有个sort函数,用上更简洁
notifier 发表于 2022-6-1 00:43
python用冒泡,有点浪费,不过赞下楼主分享精神。
tfrist 发表于 2022-6-1 05:26
恩  实现了冒泡排序算法!
三滑稽甲苯 发表于 2022-6-1 07:47
虽然讲了原理,但就实用性讲的话,不如list.sort
hs248613 发表于 2022-6-1 08:15
百度百科里的冒泡排序

Python3
def bubble_sort(nums):
    for i in range(len(nums) - 1):  # 这个循环负责设置冒泡排序进行的次数
        for j in range(len(nums) - i - 1):  # j为列表下标
            if nums[j] > nums[j + 1]:
                nums[j], nums[j + 1] = nums[j + 1], nums[j]
    return nums

print(bubble_sort([45, 32, 8, 33, 12, 22, 19, 97]))
# 输出:[8, 12, 19, 22, 32, 33, 45, 97]
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 00:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表