2010-05-13 3 views
7

나는 룩업 (look-up)으로 사용하고자하는 문자열의 배열을 가지고있다.in_array()는 이진 검색 알고리즘을 사용합니까?

나는 in_array()를 사용하고,하지만 난 그것을 통해 간단한 루프를하고 의심 - 사람이 in_array() 너 한테이 bsearch의 너 한테을 사용하는지 여부를 알고 있나요?

+0

in_array가 있는지 확실하지 않습니다. 내가 이걸 보니 네가 쓸모가있을 거라 생각 했어. http://au.php.net/manual/en/function.array-search.php#93352 –

답변

3

in_array()은 이진 (O (log n)) 검색 대신 선형 (O (n)) 검색을 사용합니다.

O (log n) 이상을 원한다면 배열에서 키로 검색하려는 값을 넣거나 효과적으로 동일한 작업을 수행하는 인덱스 구조를 만들 것을 제안합니다.

5

배열을 정렬 할 필요가 없기 때문에 이진 검색을 수행하는 방법을 알 수 없습니다.

+0

나는 그것이 공정하지 못하다는 것을 알고 있습니다. OP는 PHP가 일종의 정렬 순서를 유지하고 있다고 생각했을 것입니다. 후드. –