Tôi là một học sinh lớp cho một khóa học thống kê và có một loạt bài tập về nhà giấy được giao cho tôi theo thứ tự ngẫu nhiên. Một phần công việc của tôi là sắp xếp chúng theo thứ tự bảng chữ cái. Tôi đã sử dụng một phương pháp tương tự như sắp xếp nhanh, nhưng các học sinh khác đã sử dụng các phương pháp khác nhau. Tôi muốn một phương pháp phân loại hiệu quả, với sự biện minh, vì khi tôi có một "lớn" số của các kỳ thi, với sự biện minh được cung cấp .. Dưới đây là một số chi tiết cụ thể tôi đã thừa hưởng:Thuật toán tốt nhất để sắp xếp các bài kiểm tra
- Tôi có một danh sách chứa một danh sách theo thứ tự abc của tất cả các tên tôi sẽ thấy.
- Tôi không quan tâm đến việc đặt tên được sắp xếp theo thứ tự chữ cái hơn là chữ cái đầu tiên. Ví dụ, tôi ổn nếu "Smith, John" xuất hiện trước "Salk, Jonas".
- Tôi sẽ không bao giờ phải sắp xếp hơn 300 đối tượng.
Phương pháp của tôi cho đến nay là tìm thư trung vị cuối cùng (ví dụ: nếu có 60 giấy tờ, hãy chọn chữ cái cuối cùng tương ứng với người thứ 30) của danh sách lớp, coi nó là điểm pivot, và đặt tất cả các chữ cái ở trên trung vị trong một đống, và tất cả các chữ cái dưới đây trong một cái khác. Nếu một lá thư giống như chữ cái trung bình, tôi đặt nó vào trong cái cọc trung bình. Bây giờ tôi làm điều tương tự trên các cọc trên/dưới trung bình. Khi các cọc đủ nhỏ để chỉ có ba hoặc bốn chữ cái trong một chồng, tôi tạo một ngăn xếp cho mỗi chữ cái, sau đó gấp các ngăn xếp vào ngăn xếp chính, theo thứ tự bảng chữ cái.
Có bất kỳ thuật toán nào được thiết kế riêng để sắp xếp theo thứ tự bảng chữ cái hoặc phương pháp nào hiệu quả hơn phương pháp của tôi không? Một phương pháp có vẻ ổn thỏa là tạo một ngăn xếp cho mỗi chữ cái (26 đống, trường hợp xấu nhất), nhưng điều này tiêu tốn quá nhiều không gian đến mức không thể thực hiện được cho một bàn làm việc.
Lý do chính thức hóa tình huống ngớ ngẩn này bắt nguồn từ một đối số thân thiện với một sinh viên tốt nghiệp khác sử dụng chèn sắp xếp với hai cọc (tạo một chồng được sắp xếp, thêm mỗi giấy từ đống chưa phân loại vào đống được sắp xếp theo thứ tự) hơn là một nhu cầu nghiêm trọng. Tôi đã hy vọng cộng đồng SO có thể cung cấp biện minh cho một phương pháp cụ thể hơn phương pháp khác. –