Skip to content

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

Sorting là một trong những nền tảng quan trọng nhất của Computer Science. Hãy cùng tìm hiểu!

📚 Danh sách thuật toán

Thuật toánĐộ phức tạpStableTrạng thái
Bubble SortO(n²)✅ Có sẵn
Selection SortO(n²)🔜 Sắp có
Insertion SortO(n²)🔜 Sắp có
Merge SortO(n log n)🔜 Sắp có
Quick SortO(n log n)🔜 Sắp có
Heap SortO(n log n)🔜 Sắp có

🎯 Bắt đầu từ đâu?

💡 Khuyến nghị cho người mới

Bắt đầu với Bubble Sort để hiểu khái niệm, sau đó chuyển sang Merge SortQuick Sort để nắm các kỹ thuật nâng cao.

→ Bubble Sort

Thuật toán đơn giản nhất, dễ hiểu nhất. Phù hợp để học khái niệm. Có sẵn ngay!

Quick Sort 🔜

Thuật toán nhanh nhất trong thực tế. Được sử dụng trong nhiều thư viện chuẩn.

Merge Sort 🔜

Thuật toán ổn định, hiệu quả. Phù hợp cho Linked List và External Sorting.


📖 So sánh các thuật toán

Thuật toánBestAverageWorstSpace
Bubble SortO(n)O(n²)O(n²)O(1)
Selection SortO(n²)O(n²)O(n²)O(1)
Insertion SortO(n)O(n²)O(n²)O(1)
Merge SortO(n log n)O(n log n)O(n log n)O(n)
Quick SortO(n log n)O(n log n)O(n²)O(log n)
Heap SortO(n log n)O(n log n)O(n log n)O(1)

📝 Ghi chú

  • Stable: Thuật toán giữ nguyên thứ tự tương đối của các phần tử bằng nhau
  • In-place: Thuật toán không cần bộ nhớ phụ đáng kể (O(1) space)