10
중심 수를 구합시다. 그것은 9입니다. 우리는 9를 우리가 찾고 있는 숫자와 비교할 수 있습니다. 9는 우리가 찾고 있는 숫자와 같습니다.
이는 우리의 연구가 중단될 수 있음을 의미합니다. 목록에서 9번을 찾았습니다! JavaScript에서 이진 검색을 구현하는 방법이진 검색은 반복 또는 재귀 접근 방식을 사용하여 구현할 수 있습니다. 반복 이진 검색 반복 이진 검색은 while 루프를 사용하여 목록에서 항목을 찾습니다. 이 루프는 목록에서 항목을 찾거나 목록을 검색할 때까지 실행됩니다.
함수 이진 검색을 수행합니다.
시작과 끝이라는 두 개의 변수를 정의하는 것으로 시작하겠습니다. 이것들은 우리의 연구에서 가장 높은 값과 가장 낮은 값을 추적합니다. 시작 번호가 끝 번호보다 클 때까지 실행되는 while 루프 를 사용합니다. 이 루프는 목록의 시작과 끝 사이의 중간 숫자를 계산합니다.
찾고 있는 숫자가 중간에 있는 숫자와 같으면 중간에 있는 숫자가 메인 프로그램으로 돌아갑니다. 숫자가 작을수록 시드 값은 중간 숫자에 1을 더한 값과 같도록 설정됩니다. 이러한 비교는 if 문 을 사용하여 수행됩니다.
그렇지 않으면 마지막 숫자는 중간 숫자에서 1을 뺀 값으로 설정됩니다. while 루프를 실행한 후 숫자를 찾지 못하면 -1을 반환합니다. 이를 기본 조건이라고 합니다. 주 프로그램에서 우리는 반환된 숫자가 -1인지 확인합니다. 즉, 숫자를 찾을 수 없다는 의미입니다.
우리 함수는 아직 작동하지 않습니다. 이름을 지정하는 기본 프로그램을 작성해야 합니다. 검색할 숫자 목록과 목록에서 찾고자 하는 숫자를 정의했습니다. 다음으로 binarySearch 함수를 호출했습니다. 이것은 우리의 연구를 할 것입니다. 검색은 -1 또는 찾고 있는 요소의 위치를 반환합니다.
-1은 항목을 찾을 수 없음을 나타냅니다. 요소가 발견되지 않으면 else 문의 내용이 실행됩니다. 그렇지 않으면 if 문의 내용이 실행됩니다.
코드를 실행해 보겠습니다. 이는 검색이 성공했음을 알려줍니다! 재귀적 바이너리 검색 h3> 재귀적 이진 검색은 반복 검색보다 더 우아한 것으로 간주됩니다. 이는 이진 검색이 목록에서 동일한 작업을 반복해서 수행하기 때문입니다. 이 동작은 재귀 알고리즘을 사용하여 구현할 수 있습니다.
새 자바스크립트 파일을 열고 다음 코드를 붙여넣으세요. 이 코드는 첫 번째 검색과 동일한 비교를 수행합니다. 중간 숫자가 찾고 있는 숫자보다 크거나 작은지 확인합니다.
함수 , 시작 번호가 끝 번호보다 큰지 확인하기 위해 if 문을 사용했습니다. 그렇다면 지정된 목록에서 항목을 찾을 수 없다는 의미입니다. 이 경우 메인 프로그램에 -1을 반환합니다.
찾는 번호가 중심 번호와 같으면 중심 번호가 메인 프로그램에 반환됩니다. 찾고 있는 숫자가 중앙 숫자보다 크거나 작으면 이진 검색 기능이 다시 실행됩니다. 이것은 요소를 찾을 때까지 계속됩니다.
이 기능을 수행하려면 다음을 수행해야 합니다. 메인 프로그램을 수정하십시오: 두 개의 매개변수를 더 전달해야 합니다: "start" 및 "end" 값. "start"의 값은 0입니다. "end"의 값은 목록의 길이에서 1을 뺀 것과 같습니다.
코드를 실행하고 어떤 일이 일어나는지 봅시다. 바이너리 검색이 성공했습니다! 반복 접근 방식과 동일한 기본 알고리즘을 사용합니다. 차이점은 이진 검색은 항목을 찾을 때까지 또는 목록에서 검색이 완료될 때까지 중 먼저 도래하는 때까지 호출된 함수를 사용하여 수행된다는 것입니다. P> 결론이진 검색을 사용하면 목록에서 항목을 더 쉽게 찾을 수 있습니다. 검색이 수행될 때마다 목록에서 찾을 수 있는 나머지 항목 수가 절반으로 줄어듭니다. 이렇게 하면 선형 검색보다 이진 검색이 더 효율적입니다.
이제 다음을 수행할 준비가 되었습니다. 전문가처럼 JavaScript로 바이너리 검색을 구현하세요!
Shop
Learn programming in R: courses $
Best Python online courses for 2022 $
Best laptop for Fortnite $
Best laptop for Excel $
Best laptop for Solidworks $
Best laptop for Roblox $
Best computer for crypto mining $
Best laptop for Sims 4 $
Latest questions
NUMPYNUMPY
psycopg2: insert multiple rows with one query
12 answers
NUMPYNUMPY
How to convert Nonetype to int or string?
12 answers
NUMPYNUMPY
How to specify multiple return types using type-hints
12 answers
NUMPYNUMPY
Javascript Error: IPython is not defined in JupyterLab
12 answers
Wiki
Python OpenCV | cv2.putText () method
numpy.arctan2 () in Python
Python | os.path.realpath () method
Python OpenCV | cv2.circle () method
Python OpenCV cv2.cvtColor () method
Python - Move item to the end of the list
time.perf_counter () function in Python
Check if one list is a subset of another in Python
Python os.path.join () method
|