2012-08-17 4 views
0

이것은 이론적 인 질문이므로 의사 코드를 사용하려고합니다.하나의 객체 목록을 다른 목록으로 변환

다른 목록으로 변환해야하는 개체 목록이 있습니다.

Levenshtein 알고리즘을 구현했는데 제대로 작동하지만 개체를 ​​유지하고 새로운 개체를 만들어야합니다. 짐작할 수 있지만 이드는 오히려 O (n * m)이 아닌 방법을 찾는다.

[OBJ1, obj2보다, OBJ3] -> [OBJ1, OBJ4, OBJ5, obj2보다, obj6, OBJ3]

OBJ1, obj2보다, 나머지는 새로운 객체를 생성하는 동일한 개체 일 필요 OBJ3.

아무도 이것에 대한 좋은 알고리즘을 알고 있습니까?

+1

이 질문은 귀하의 언어 기능에 따라 달라 지므로 의사 코드에서 대답 할 수 없습니다. C++ 및 Java에 대한 대답은 매우 다릅니다. – dasblinkenlight

+0

질문의 개체가 문자열입니다. 중간 개체는 어떻게 보이게 할 것인가, 거리 1 편집 단계입니까? – cmh

+0

개체가 복잡한 클래스가 아닙니다. 모든 수정 거리는 1입니다. 주문 된 사용자 콘텐츠의 작은 목록입니다. C#에서이 작업을 수행하고 있으며 목록은 우리가 만든 클래스 목록입니다. – busbina

답변

1

패턴 flyweight을 사용하면 생성 된 객체를 캐시에 유지 관리해야합니다. java의 문자열은이 패턴의 좋은 예입니다.

+0

이것이 어떻게 작동하는지 봅니다. 나는 각 목록을 한 번만지나 가게된다. 아픈 그것을 구현하고 돌아 가라. 감사!! :) – busbina

관련 문제