Tôi có hai mảng 100 ký tự (tối đa, có thể ít hơn hoặc không cùng kích thước) mà tôi muốn căn chỉnh. Tôi muốn thêm "-" khi có một ký tự khác với ký tự còn lại. Tôi đã tìm thấy thuật toán Needleman–Wunsch, dựa trên lập trình động và thuật toán Smith–Waterman là phương pháp căn chỉnh chung cục bộ cũng dựa trên lập trình động nhưng có vẻ quá phức tạp đối với những gì tôi muốn làm. Tôi chỉ cần một thuật toán đơn giản trong Java có lẽ khoảng ít hơn 50 dòng, mã này sẽ được dịch sang ngôn ngữ lắp ráp sau, vì vậy mà tại sao tôi cần một thuật toán đơn giản.Thuật toán liên kết ký tự Java
Có cách nào thực hiện loại căn chỉnh này với thuật toán khác không? Nếu có ai đó có thể chỉ cho tôi cách làm điều này? Tôi tìm kiếm trên phần biostar, nhưng có vẻ như tôi cần sử dụng hai thuật toán mà tôi đã đề cập.
Tiếng Anh không phải là ngôn ngữ mẹ đẻ của tôi, vì vậy, có lẽ tôi đã tìm kiếm từ khóa sai.
Chương trình của tôi đã hoạt động với thuật toán Needleman và khoảng 200 dòng mã (ish) của nó.
Ví dụ về mong muốn đầu vào/đầu ra:
Input
Array 1 : MKNLASREVNIYVNGKLV
Array 2 : QMASREVNIYVNGKL
Output
Array 1 (or a simple print) : -MKNLASREVNIYVNGKLV
Array 2 (or a simple print) : QM---ASREVNIYVNGKL-
Cảm ơn
là đầu ra có đúng không? 'IY' biến mất, trong khi' Q' vẫn còn tồn tại? Là thứ tự của mảng 2 có liên quan, hay nó chỉ đơn giản theo Array 1 theo thứ tự? –
Tôi đã sửa đổi đầu vào đầu vào để làm cho vấn đề rõ ràng hơn và thứ tự có liên quan. – metraon
Trong bài viết Wikipedia, http://en.wikipedia.org/wiki/Sequence_alignment, đó là những thuật toán cơ bản duy nhất được liệt kê. Nó không chắc rằng các internet sẽ có thể đưa ra một cái gì đó tốt hơn. Bên cạnh đó, kịch bản của bạn có vấn đề gì ** đơn giản hơn ** so với trường hợp liên kết chuỗi chung? –