2025年5月21日 星期三

merge sort

 def mgsort(d):

  if len(d)<=1:return d

  n = len(d)//2

  left = mgsort(d[:n])

  right = mgsort(d[n:])

  return merge(left,right)


def merge(left,right):

  i,j = 0,0

  result = []

  while i<len(left) and j<len(right):

    if left[i]<right[j]:

      result.append(left[i])

      i+=1

    else:

      result.append(right[j])

      j+=1

  result.extend(left[i:])

  result.extend(right[j:])

  return result

  


d = [int(i) for i in input().split()]

n = len(d)

print(mgsort(d))


data:

1 2 10 9 8 3 5 4 7 6


Output:


[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

沒有留言:

張貼留言