原题链接:排序
注意输入输出
# 希尔排序
def shell_sort(nums):
# 间隙初始为数组长度的一半
gap = len(nums) // 2
# 当间隙大于0时继续排序
while gap > 0:
# 开始插入排序
for i in range(0, len(nums), gap):
# 拿出待排序元素
tem = nums[i]
# 找到合适的位置
j = i - gap
while j >= 0 and nums[j] > tem:
# 往右边移
nums[j + gap] = nums[j]
j -= gap
# 在合适的位置插入元素
nums[j + gap] = tem
# 缩小gap
gap //= 2
while True:
try:
n = eval(input())
nums = list(map(eval, input().split()))
shell_sort(nums)
for j in range(n):
if j != n - 1:
print(nums[j], end=" ")
else:
print(nums[j])
except Exception:
break
0 分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复