甜萝 发表于 2022-5-31 22:11

对10个数进行排序

本帖最后由 paypojie 于 2022-5-31 22:26 编辑

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

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

一般来说 看题目如果有思路的话 不会第一时间去搜索相关解析 而是直接去编辑器里写 或者看看案例怎么写的然后自己动手写
看完案例后 我写下了第一行
if __name__ == '__main__':
这行代码的意思是 只有这段代码是模块自身执行时 才会执行if下的代码块 如果是被其他模块引用的 就不会执行
https://www.zhihu.com/question/49136398 知乎的分享 今天晚上刷到的 大数据真强 下午写的 晚上就刷到了

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

# 外层循环
for k in range(N):
下面为内层循环 内层循环的意思是 循环0次到N-k-1次 表示N的值减去当前正在遍历的元素索引 再减一 表示10减掉已经排好序的元素个数再减1 为什么要减1呢 因为要为后面的条件判断做准备 如果当前循环的索引所对应的值比后面的索引对应的值大 那就交换 也就是说 前者大于后者 前者就变成后者的值 后者变成前者的值
# 内层循环
      for k in range(0,N-k-1):
            # if L < L:
            #   L,L = L,L
            if L > L:
                L,L = L,L
完整代码
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 < L:
            #   L,L = L,L
            if L > L:
                L,L = L,L
    print(L)
写的很一般 献丑啦



甜萝 发表于 2022-5-31 22:13

本帖最后由 paypojie 于 2022-6-1 12:53 编辑

每条评论都回复:lol 限制回帖了 要一小时后才能回帖

纸莺鸢梦 发表于 2022-5-31 22:29

加油!慢慢成长

唯爱丶雪 发表于 2022-5-31 22:29

流弊,,我只会用列表里的reverse

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 > nums:
                nums, nums = nums, nums
    return nums

print(bubble_sort())
# 输出:
页: [1] 2 3 4
查看完整版本: 对10个数进行排序