2012-08-27 3 views
4

바이너리 검색 알고리즘은 O (로그 n)의 큰 O 값을 갖고 순차 검색은 O (n)의 큰 O 값을 갖습니다. 그러나 우리는 이진 검색 전에 정렬 알고리즘이 필요하고 정렬 알고리즘에 대한 가장 큰 O 값은 O (n.log n)입니다. 따라서 효과적으로, 이진 검색의 큰 O 값은 O (n.log n)이며 순차 검색의 값보다 큽니다. 그래서, 어느 것이 algo를 검색하는 것으로 선호됩니까?선호하는 검색 알고리즘은 무엇입니까?

답변

3

실제로는 검색 빈도에 따라 다릅니다. 수백만 번 검색해야하는 경우 선행 비용을 지불해야하는 경우에도 이진 검색을 원합니다. 사용 사례에 따라 다릅니다. 바이너리 검색을 사용하면 인서트가 정렬 된 목록을 유지하도록 보장하므로 목록의 정렬도 느려집니다.

삽입 횟수가 많고 검색 횟수가 매우 적은 경우 순차 검색이 빠를 수 있습니다.

많은 정보가 개의 데이터로 작업하기 전에는 눈에 띄지 않습니다.

2

순차 검색은 최적화 된 응용 프로그램에서는 거의 사용되지 않습니다. 일반적으로 적절한 데이터 구조를 찾으려면 자주 사용되는 검색을 제공하는 데이터 구조를 사용하는 것이 좋습니다. O (n).

예를 들어, red-black treeO (log n)에 삽입/삭제/검색을 모두 제공하는 특별한 종류의 균형 이진 트리입니다. 따라서 작성하고 채우고 검색하는 것이 빠릅니다.

관련 문제