2015-01-11 2 views
0

저는 매우 긴 배열 (2 백만 개)의 문자열 (도서의 경우 ISBN)을 가지고 있습니다.신속하게 긴 배열의 문자열 찾기

기존 라이브러리에 추가하는 XML 파일을 구문 분석하고 있습니다. XML 파일의 모든 책에서 데이터베이스를 사용하는 대신 ISBN의 기존 라이브러리를 배열에로드했습니다.

새로운 ISBN이 발견되면 새로운 책 모델을 만듭니다. 이미 ISBN이 존재하면 해당 제목의 열을 업데이트합니다.

현재 나는 또한 ISBN 키의 해시 배열을 변환 실험

array.index(ISBN) 

XML 파일에서 각각의 ISBN을 찾기 위해 인덱스를 사용하고 조금 더 빠르다.

hash[ISBN] 

조회를 빠르게 할 수있는 아이디어가 있습니까? 배열과 해시 방법은 각각 대략 15와 20 체크/초를 제공합니다.

+2

블룸 필터는 어떨까요? https://github.com/igrigorik/bloomfilter-rb – emaillenin

+1

단위는'mm'입니까? 일반적으로 이것은 밀리미터를 의미합니다. 여기서 의미가 없습니다. – sawa

+0

죄송합니다. mm = 백만입니다. updated –

답변

0

해시 조회가 가장 빠릅니다. 그것의 계산상의 복잡성은 크기와 관련하여 상수이다. 속도가 충분히 빠르지 않으면 코드의 다른 부분에 문제가있는 것입니다.

+0

그래, 내가 읽은 대부분의 다른 게시물과 인라인으로 보인다. 그러나 그 토론 중 몇 년은 몇 년이 걸렸으므로 해시 키가 여전히 유효하다는 것을 확인하고 싶었습니다. –

관련 문제