THUẬT TOÁN “DỊ” NHẤT MÀ BẠN TỪNG THẤY LÀ GÌ?

Là một lập trình viên chắc hẳn bạn đã từng học qua cấu trúc dữ liệu và giải thuật. Trong đó bạn đã biết đến những thuật toán từ đơn giản như insert sort, select sort…cho đến những thuật toán phức tạp hơn như giải thuật Dijkstra. Những thuật toán trên đều thuộc loại “chính quy” và bạn có thể bắt gặp nó ở bất kỳ đâu, các trang web và tài liệu về giải thuật đều nói về những giải thuật này. Thế nhưng đã bao giờ bạn gặp một thuật toán “dị”, kỳ lạ và có phần stupid chưa? Bài viết này là tập hợp những thuật toán kỳ là mà tôi đã từng gặp trong lúc làm việc cũng như học hỏi trên mạng. Có thể những thuật toán này không hữu dụng và cũng chẳng ai xài cả vì nó không thích hợp để đưa vào thực tế. Tuy nhiên, bạn có thể nhìn thấy một vấn đề có nhiều cách giải quyết, và có những cách giải quyết kỳ lạ đến nỗi thú vị. Cũng có thể bạn sẽ tìm thấy được ứng dụng của những thuật toán “dị” này vào trong thực tế thì sao? Và trên hết, tôi thấy nó rất là giải trí! Nào bắt đầu thôi

Xem thêm: Sự khác nhau giữa std::endl và “\n” trong C++

BogoSort hay Ramdom sort

Ý tưởng của nó là random sắp xếp những phần tử mảng, sau đó kiểm tra xem mảng đã được sắp xếp đúng chưa, nếu chưa thì random sắp xếp lại. Các bạn thấy “dị” chưa?

Sleep sort

Thuật toán: với mỗi phần tử x của mảng, cho sleep x milisecond, sau đó print ra màn hình.

Đây là những thuật toán tôi sưu tầm được và sẽ update mỗi khi tôi kiếm được thuật toán mới thú vị. Còn bạn thì sao? Bạn có thuật toán nào thú vị muốn chia sẻ không?

Tham khảo: https://www.quora.com/What-is-the-strangest-sorting-algorithm

 

Bài viết liên quan