Nói chung, có các thuật toán sắp xếp , chẳng hạn như sắp xếp chèn, sắp xếp bong bóng và sắp xếp lựa chọn, mà bạn thường chỉ nên sử dụng trong các trường hợp đặc biệt; Quicksort, trường hợp xấu nhất nhưng thường là với các hằng số và thuộc tính tốt và có thể được sử dụng làm thủ tục sắp xếp mục đích chung; các thuật toán , như hợp nhất-sort và heap-sort, cũng là các thuật toán sắp xếp mục đích chung tốt; và hoặc thuật toán sắp xếp tuyến tính cho các danh sách các số nguyên, chẳng hạn như cơ số, xô và các loại đếm, có thể phù hợp tùy thuộc vào bản chất của các số nguyên trong danh sách của bạn.O ( n 2 ) O ( n log n ) O ( n log n ) O ( n )Ô ( n2)Ô ( n2)O ( n logn )O ( n logn )Ô ( n )
Nếu các yếu tố trong danh sách của bạn sao cho tất cả những gì bạn biết về chúng là mối quan hệ tổng thứ tự giữa chúng, thì thuật toán sắp xếp tối ưu sẽ có độ phức tạp . Đây là một kết quả khá tuyệt vời và một kết quả mà bạn sẽ có thể dễ dàng tìm thấy chi tiết trực tuyến. Các thuật toán sắp xếp tuyến tính khai thác thêm thông tin về cấu trúc của các phần tử được sắp xếp, thay vì chỉ là mối quan hệ tổng thứ tự giữa các phần tử.Ω ( nhật ký nn )
Thậm chí, nói chung, tính tối ưu của thuật toán sắp xếp phụ thuộc rất nhiều vào các giả định mà bạn có thể đưa ra về loại danh sách bạn sẽ sắp xếp (cũng như mô hình máy mà thuật toán sẽ chạy, có thể khiến việc sắp xếp kém đi thuật toán là sự lựa chọn tốt nhất, xem xét sắp xếp bong bóng trên các máy có băng để lưu trữ). Giả định của bạn càng mạnh, thuật toán của bạn có thể cắt càng nhiều góc. Theo các giả định rất yếu về mức độ hiệu quả mà bạn có thể xác định "tính sắp xếp" của danh sách, độ phức tạp trong trường hợp xấu nhất tối ưu thậm chí có thể là .Ω ( n ! )
Câu trả lời này chỉ đề cập đến sự phức tạp. Thời gian chạy thực tế của việc triển khai các thuật toán sẽ phụ thuộc vào một số lượng lớn các yếu tố khó giải thích trong một câu trả lời duy nhất.