Tôi đã suy nghĩ về việc sắp xếp các thuật toán trong phần mềm và những cách khả thi người ta có thể vượt qua O(nlogn)
rào cản. Tôi không nghĩ rằng có thể sắp xếp nhanh hơn theo nghĩa thực tế, vì vậy xin đừng nghĩ rằng tôi làm vậy.
Như đã nói, có vẻ như với hầu hết các thuật toán sắp xếp, phần mềm phải biết vị trí của từng phần tử. Nếu không, điều này có ý nghĩa như thế nào, làm thế nào nó biết được vị trí đặt từng phần tử theo một số tiêu chí sắp xếp?
Nhưng khi tôi vượt qua suy nghĩ này với thế giới thực, máy ly tâm không biết mỗi phân tử ở vị trí nào khi nó 'sắp xếp' các phân tử theo mật độ. Trên thực tế, nó không quan tâm đến vị trí của từng phân tử. Tuy nhiên, nó có thể sắp xếp hàng nghìn tỷ trên hàng nghìn tỷ vật phẩm trong một khoảng thời gian tương đối ngắn, do thực tế là mỗi phân tử tuân theo luật mật độ và lực hấp dẫn - điều này khiến tôi phải suy nghĩ.
Liệu có thể với một số chi phí trên mỗi nút (một số giá trị hoặc phương pháp gắn vào mỗi nút) để 'buộc' thứ tự của danh sách không? Một cái gì đó giống như một máy ly tâm, nơi chỉ mỗi phần tử quan tâm đến vị trí tương đối của nó trong không gian (trong mối quan hệ với các nút khác). Hoặc, điều này có vi phạm một số quy tắc trong tính toán?
Tôi nghĩ một trong những điểm quan trọng được đưa ra ở đây là các hiệu ứng cơ lượng tử của tự nhiên và cách chúng áp dụng song song cho tất cả các hạt đồng thời.
Có lẽ các máy tính cổ điển vốn đã hạn chế việc sắp xếp trong phạm vi O(nlogn)
, nơi mà máy tính lượng tử có thể vượt qua ngưỡng đó thành các O(logn)
thuật toán hoạt động song song.
Điểm mà một máy ly tâm về cơ bản là một loại bong bóng song song dường như là đúng, có độ phức tạp về thời gian O(n)
.
Tôi đoán suy nghĩ tiếp theo là nếu thiên nhiên có thể sắp xếp O(n)
thì tại sao máy tính lại không thể?