Quicksort vs Merge sort
Quicksort vs merge sort compared — speed, memory, stability and worst case, with interactive visualizers.
Quicksort partitions around a pivot in place and is usually the fastest in practice; merge sort splits and merges with guaranteed O(n log n) and stability, at the cost of extra memory.
Quicksort vs Merge sort at a glance
| Quicksort | Merge sort | |
|---|---|---|
| Average time | O(n log n) | O(n log n) |
| Worst case | O(n²) | O(n log n) |
| Memory | In place | O(n) extra |
| Stable | No | Yes |
When to use Quicksort
Use quicksort as a fast in-place default for arrays where worst case is unlikely.
When to use Merge sort
Use merge sort when you need guaranteed O(n log n), stability, or are sorting linked lists.
Tools for Quicksort & Merge sort
Trình trực quan hóa Quick Sort
Quicksort hoạt hình với làm nổi bật pivot/phân vùng, điều khiển từng bước, tốc độ, nhập tùy chỉnh, bộ đếm trực tiếp và mã giả. Chạy ngay trong trình duyệt của bạn.
Mở công cụTrình trực quan hóa Merge Sort
Mô phỏng merge sort có hoạt ảnh với điều khiển từng bước, tốc độ, dữ liệu đầu vào tùy chỉnh, bộ đếm so sánh/ghi trực tiếp và mã giả (pseudocode). Chạy hoàn toàn trên trình duyệt.
Mở công cụTrình minh họa Heap Sort
Minh họa động thuật toán heap sort với điều khiển từng bước, tốc độ, dữ liệu đầu vào tùy chỉnh, bộ đếm so sánh/hoán đổi trực tiếp và pseudocode. Chạy ngay trên trình duyệt.
Mở công cụTrình mô phỏng Bubble Sort
Mô phỏng bubble sort có hoạt ảnh với các nút điều khiển từng bước, tốc độ, dữ liệu đầu vào tùy chỉnh, bộ đếm so sánh/hoán đổi trực tiếp và pseudocode. Chạy hoàn toàn trong trình duyệt của bạn.
Mở công cụQuicksort vs Merge sort
Bubble sort là gì?
Bubble sort duyệt qua danh sách nhiều lần, so sánh các phần tử liền kề và hoán đổi chúng nếu thứ tự sai. Sau mỗi lượt duyệt đầy đủ, giá trị lớn tiếp theo sẽ được đặt đúng vị trí cuối cùng của nó.
Độ phức tạp thời gian của bubble sort là gì?
O(n²) ở trường hợp trung bình và xấu nhất do có các vòng lặp lồng nhau. Trường hợp tốt nhất là O(n) khi mảng đã được sắp xếp sẵn — phiên bản tối ưu sẽ phát hiện không có hoán đổi nào và dừng sớm.
Bubble sort có ổn định (stable) không?
Có. Các phần tử bằng nhau vẫn giữ nguyên thứ tự tương đối ban đầu vì thuật toán chỉ hoán đổi khi phép so sánh là lớn hơn nghiêm ngặt (strict greater-than).
Khi nào nên dùng bubble sort?
Gần như không bao giờ dùng trong môi trường production — đây là thuật toán mang tính giảng dạy. Với khối lượng công việc thực tế, hãy dùng hàm sort có sẵn (Timsort / introsort). Bubble sort có giá trị trong việc giúp hiểu về so sánh, hoán đổi và tính ổn định.