Skip to Content
🧮 CTDL & Giải thuật📈 Thuật toán sắp xếp

Thuật toán sắp xếp (Sorting)

Tổng quan

Thuật toánTrung bìnhXấu nhấtStable
Bubble SortO(n²)O(n²)
Merge SortO(n log n)O(n log n)
Quick SortO(n log n)O(n²)

Bubble Sort

def bubble_sort(arr): n = len(arr) for i in range(n): swapped = False for j in range(n - 1 - i): if arr[j] > arr[j + 1]: arr[j], arr[j + 1] = arr[j + 1], arr[j] swapped = True if not swapped: break return arr

Merge Sort

def merge_sort(arr): if len(arr) <= 1: return arr mid = len(arr) // 2 left = merge_sort(arr[:mid]) right = merge_sort(arr[mid:]) return merge(left, right) def merge(left, right): result = [] i = j = 0 while i < len(left) and j < len(right): if left[i] <= right[j]: result.append(left[i]) i += 1 else: result.append(right[j]) j += 1 result.extend(left[i:]) result.extend(right[j:]) return result

Quick Sort

def quick_sort(arr): if len(arr) <= 1: return arr pivot = arr[len(arr) // 2] left = [x for x in arr if x < pivot] middle = [x for x in arr if x == pivot] right = [x for x in arr if x > pivot] return quick_sort(left) + middle + quick_sort(right)
💡

Trong thực tế, hãy dùng hàm sort() có sẵn của ngôn ngữ - chúng đã được tối ưu!


Tiếp theo: Đệ quy (Recursion)

Last updated on