JS 배열 검색에서 반 검색 구현 방법에 대한 자세한 설명

黄舟
풀어 주다: 2017-03-27 14:39:07
원래의
1365명이 탐색했습니다.

본 글에서는 JS배열검색에서 반검색 구현 방법을 주로 소개하고, 자바스크립트 배열 반검색 알고리즘의 원리를 특정 요소와 조합하여 분석한다. 구현 기술 및 관련 노트, 필요한 친구들이 참고할 수 있습니다

이 글에서는 JS 배열 검색의 절반 검색 구현 방법을 설명합니다. 참고하실 수 있도록 공유해 드리며, 자세한 내용은 다음과 같습니다.

1. 방법 원리:

주어진 시퀀스 배열에서 특정 값을 검색할 때 arr 중간점을 결정하는 경우 middle = Math.floor((종료점 - 시작점) / 2);

3. startIndex < endIndex를 전제로 arr[middle]의 크기와 값을 비교합니다. :

(1) arr[middle] < value

검색 범위를 배열의 후반부, 즉 startIndex = middle + 1, endIndex = arr.length -로 조정합니다. 1;

(2) arr[middle] > value

검색 범위를 배열의 전반부, 즉 startIndex = 0, endIndex = middle - 1;

그런 다음 middle을 다시 계산하고 arr[middle]과 value가 같거나 startIndex >= endIndex가 될 때까지 다시 비교합니다.

2. 코드:

// 该例的写法适用于序列为由小到大的数组
function binarySearch(arr, value) {
  var startIndex = 0,
  endIndex = arr.length - 1;
  middle = Math.floor((endIndex - startIndex) / 2);
  while (arr[middle] !== value && startIndex < endIndex) {
    if (arr[middle] > value) {
      endIndex = middle - 1;
    } else if (arr[middle] < value) {
      startIndex = middle + 1;
    }
    middle = Math.floor((endIndex - startIndex) / 2);
  }
  return (arr[middle] !== value) ? -1 : middle;
}
로그인 후 복사

3. 장점과 단점:

(1) 장점:

검색할 때마다 검색되는 배열 항목 수가 절반으로 줄어듭니다. 이므로 선형 검색 방법보다 성능이 좋습니다(특히 배열 항목이 많은 경우).

(2) 단점:

은 일반

배열에서 이 방법을 사용하려면 배열을 정렬해야 합니다.

위 내용은 JS 배열 검색에서 반 검색 구현 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿