Menu
CoddyTech

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 result

Hai 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.

quiz iconTự kiểm tra

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