伪代码
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 同时遍历两个已排序的列表,每次都取较小的首个元素,这样合并后的列表就能保持有序。
亲手试试
这节课没有代码挑战。
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
归并排序:数据结构与算法系列中的所有课
自己练习: C 在线编译器