Chuyển tới nội dung chính
Z

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

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.