Đây là một câu hỏi mã-golf.
Đầu vào
Một danh sách các số nguyên không âm ở bất kỳ định dạng nào là thuận tiện nhất.
Đầu ra
Danh sách tương tự theo thứ tự được sắp xếp theo bất kỳ định dạng nào là thuận tiện nhất.
Sự hạn chế
- Mã của bạn phải chạy trong thời gian O (n log n) thời gian trong trường hợp xấu nhất mà
n
là số nguyên trong đầu vào. Điều này có nghĩa là quicksort ngẫu nhiên là ra ví dụ. Tuy nhiên có nhiều lựa chọn khác để lựa chọn. - Không sử dụng bất kỳ thư viện sắp xếp / chức năng / tương tự. Cũng đừng sử dụng bất cứ thứ gì làm hầu hết công việc sắp xếp cho bạn như thư viện heap. Về cơ bản, bất cứ điều gì bạn thực hiện, thực hiện nó từ đầu.
Bạn có thể định nghĩa một hàm nếu bạn thích nhưng sau đó vui lòng hiển thị một ví dụ về hàm đó trong một chương trình đầy đủ thực sự hoạt động. Nó sẽ chạy thành công và nhanh chóng trên tất cả các trường hợp thử nghiệm dưới đây.
Các trường hợp thử nghiệm
In: [9, 8, 3, 2, 4, 6, 5, 1, 7, 0]
Out:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In: [72, 59, 95, 68, 84]
Out:[59, 68, 72, 84, 95]
In: [2, 2, 1, 9, 3, 7, 4, 1, 6, 7]
Out:[1, 1, 2, 2, 3, 4, 6, 7, 7, 9]
In: [2397725, 1925225, 3304534, 7806949, 4487711, 8337622, 2276714, 3088926, 4274324, 667269]
Out:[667269,1925225, 2276714, 2397725,3088926, 3304534, 4274324, 4487711, 7806949, 8337622]
Câu trả lời của bạn
Vui lòng nêu thuật toán sắp xếp bạn đã triển khai và độ dài của giải pháp trong tiêu đề câu trả lời của bạn.
Các thuật toán sắp xếp thời gian O (n log n)
Có nhiều thuật toán thời gian O (n log n) tồn tại. Bảng này có một danh sách của một số trong số họ.
intersect
đến dưới "tương tự" nếu nó tự động sắp xếp mảng. Nếu bạn loại bỏ trùng lặp, bạn sẽ cung cấp đầu ra sai.
intersect
tự động sắp xếp mảng. Tôi đoán bạn muốn loại trừ những người quá. Làm thế nào vềunique
(loại bỏ trùng lặp, sắp xếp kết quả)?