注意输入输出

  1. # 希尔排序
  2. def shell_sort(nums):
  3. # 间隙初始为数组长度的一半
  4. gap = len(nums) // 2
  5. # 当间隙大于0时继续排序
  6. while gap > 0:
  7. # 开始插入排序
  8. for i in range(0, len(nums), gap):
  9. # 拿出待排序元素
  10. tem = nums[i]
  11. # 找到合适的位置
  12. j = i - gap
  13. while j >= 0 and nums[j] > tem:
  14. # 往右边移
  15. nums[j + gap] = nums[j]
  16. j -= gap
  17. # 在合适的位置插入元素
  18. nums[j + gap] = tem
  19. # 缩小gap
  20. gap //= 2
  21. while True:
  22. try:
  23. n = eval(input())
  24. nums = list(map(eval, input().split()))
  25. shell_sort(nums)
  26. for j in range(n):
  27. if j != n - 1:
  28. print(nums[j], end=" ")
  29. else:
  30. print(nums[j])
  31. except Exception:
  32. break
点赞(0)
 

0 分

0 人评分

 

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论