Mã giả
Bài học 4 trên 9 trong khóa học Merge Sort: loạt bài về DSA của Coddy.
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 resultHai hàm phối hợp với nhau:
- mergeSort liên tục chia mảng cho đến khi các phần đã được sắp xếp sẵn một cách đơn giản, sau đó dùng merge để gộp chúng lại.
- merge duyệt đồng thời hai danh sách đã sắp xếp, luôn lấy phần tử đầu nhỏ hơn, nhờ đó danh sách sau khi gộp vẫn được sắp xếp.
Tự làm thử
Bài học này không có thử thách code.
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Merge Sort: loạt bài về DSA
Tự luyện tập: Trình biên dịch C online