Tôi gặp sự cố liên quan đến khu vực sinh học. Ngay bây giờ tôi có 4 tệp RẤT LỚN (mỗi với 0,1 tỷ dòng), nhưng cấu trúc khá đơn giản, mỗi dòng của các tệp này chỉ có 2 trường, cả hai đều là viết tắt của một loại gen.cần trợ giúp thiết kế cho thuật toán tìm kiếm theo cách hiệu quả hơn
Mục tiêu của tôi là: thiết kế một thuật toán hiệu quả có thể đạt được những điều sau đây: Tìm một vòng tròn trong nội dung của 4 tệp này. Vòng tròn được định nghĩa là:
field #1 in a line in file 1 == field #1 in a line in file 2 and
field #2 in a line in file 2 == field #1 in a line in file 3 and
field #2 in a line in file 3 == field #1 in a line in file 4 and
field #2 in a line in file 4 == field #2 in a line in file 1
Tôi không thể nghĩ ra một cách đàng hoàng để giải quyết việc này, vì vậy tôi chỉ viết một vòng lặp brute-force-ngu ngốc-4-lớp-lồng nhau cho bây giờ. Tôi đang suy nghĩ về việc sắp xếp chúng theo thứ tự bảng chữ cái, ngay cả khi điều đó có thể giúp ích một chút, nhưng sau đó nó cũng hiển nhiên rằng bộ nhớ máy tính sẽ không cho phép tôi tải mọi thứ cùng một lúc. Ai có thể cho tôi biết một cách tốt để giải quyết vấn đề này một cách hiệu quả về thời gian và không gian? Cảm ơn!!
Có quan trọng ở đâu trong tệp không? – Chris
Các trường có phân phối gì? Chúng có độc đáo không? Hoặc bạn có thể có nhiều dòng với cùng một tập hợp các trường? Hoặc để đặt cách này theo cách khác, trường 1 có trong trường khớp 1 tệp 1 trong nhiều dòng khác không? –