DSA_5: Sắp xếp hòa trộn | Merge sort.
Giải thuật:
- 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.
Minh họa:
Code Python:
xxxxxxxxxxdef 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Độ phức tạp:
- Best:
- Average:
- Worst: