Menu
CoddyTech

伪代码

Coddy 归并排序:数据结构与算法系列 课程的第 4 课,共 9 课。

mergeSort(array):
   if length(array) <= 1:
      return array
   mid = length(array) / 2
   left = mergeSort(array[0..mid])
   right = mergeSort(array[mid..end])
   return merge(left, right)

merge(left, right):
   result = []
   while left and right both still have elements:
      if left[0] <= right[0]:
         move the front of left into result
      else:
         move the front of right into result
   append whatever remains of left
   append whatever remains of right
   return result

两个函数协同工作:

  • mergeSort 不断拆分数组,直到每个部分都可以直接视为已排序,然后依靠 merge 将它们合并。
  • merge 同时遍历两个已排序的列表,每次都取较小的首个元素,这样合并后的列表就能保持有序。

亲手试试

这节课没有代码挑战。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

归并排序:数据结构与算法系列中的所有课

自己练习: C 在线编译器