You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何高效编写接收四个整数并输出非降序排列的Python程序

高效实现四整数非降序排列的Python程序

需求说明

接收四行输入的四个整数,将其按非降序排列后输出为一行,整数间用单个空格分隔,且第四个整数后无空格。

原代码的问题

你提供的原代码通过多层嵌套if判断实现排序,存在以下问题:

  • 逻辑冗余复杂,代码可读性差,维护成本高;
  • 容易出现语法错误(例如代码中print(d,a.b,c)的.应为逗号);
  • 扩展性极差,若需处理更多元素,代码量会呈指数级增长。

高效实现方案

Python内置的排序算法(Timsort)经过高度优化,对于小规模数据(如4个整数)效率极高,同时代码简洁易维护,是最优选择:

# 读取四行输入,转换为整数列表
numbers = [int(input()) for _ in range(4)]
# 执行非降序排序(默认就是非降序)
numbers.sort()
# 格式化为要求的输出格式:空格分隔,末尾无空格
print(' '.join(map(str, numbers)))

代码解释

  1. 输入收集:用列表推导式一次性读取四行输入并转为整数,比单独赋值更简洁;
  2. 排序:sort()方法直接对列表原地排序,时间复杂度为O(n log n),对于4个元素来说几乎是瞬时完成;
  3. 输出格式化:用' '.join()将排序后的整数转为字符串并拼接,完美满足“单个空格分隔、末尾无空格”的要求。

手动排序实现(学习用)

如果出于学习目的需要手动实现排序逻辑,也可以用更简洁的方式避免多层嵌套:

a = int(input())
b = int(input())
c = int(input())
d = int(input())

# 手动找出最小值与最大值
min_val = min(a, b, c, d)
max_val = max(a, b, c, d)
# 提取中间两个数并排序
remaining = [x for x in [a, b, c, d] if x != min_val and x != max_val]
mid1, mid2 = sorted(remaining)

print(min_val, mid1, mid2, max_val)

内容的提问来源于stack exchange,提问作者Akash Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 21:30:52