menu

DSA_5: Sắp xếp hòa trộn | Merge sort.

1. Thuật toán:
  • Chia đôi mảng một cách đệ quy.
  • Sắp xếp các mảng con và gộp chúng lại.
2. Minh họa:

3. Code Python:
def mergeSort(arr):
    if len(arr) > 1:
        mid = len(arr) // 2
        L = arr[:mid]
        R = arr[mid:]
        mergeSort(L)
        mergeSort(R)
        i = j = k = 0
        while i < len(L) and j < len(R):
            if L[i] < R[j]:
                arr[k] = L[i]
                i += 1
            else:
                arr[k] = R[j]
                j += 1
            k += 1
        while i < len(L):
            arr[k] = L[i]
            i += 1
            k += 1
        while j < len(R):
            arr[k] = R[j]
            j += 1
            k += 1
4. Độ phức tạp thuật toán:
  • Best:

  • Avarage:

  • Worst: