菜鸡1号


私信TA

用户名:uq_69651989863

访问量:1471

签 名:

等  级
排  名 1220
经  验 3089
参赛次数 0
文章发表 48
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

解题思路:

注意事项:

参考代码:

def merge_sort(nums):
   if len(nums) <= 1:
       return nums

   # 分割阶段
   mid = len(nums) // 2
   left = nums[:mid]
   right = nums[mid:]

   left = merge_sort(left)     # 递归地对左子序列进行排序
   right = merge_sort(right)   # 递归地对右子序列进行排序

   # 合并阶段
   return merge(left, right)


def merge(left, right):
   merged = []
   i = j = 0
   while i < len(left) and j < len(right):
       if left[i] < right[j]:
           merged.append(left[i])
           i += 1
       else:
           merged.append(right[j])
           j += 1

   # 将剩余的元素直接放入merged中
   merged.extend(left[i:])
   merged.extend(right[j:])

   return merged


n = int(input())
nums = list(map(int, input().split()))
result = merge_sort(nums)
print(' '.join(map(str, result)))

 

0.0分

0 人评分

  评论区

  • «
  • »