명시적 항목 존재 검사를 사용하는 Python의 이진 검색(이등분)
Python bisect 모듈은 bisect_left와 같은 이진 검색을 수행하는 함수를 제공합니다. 그리고 bisect_right. 그러나 이러한 함수는 검색 중인 항목이 목록에 없는 경우에도 위치를 반환합니다. 항목의 유무만 원하는 경우에는 보다 명시적인 확인이 필요합니다.
한 가지 접근 방식은 bisect_left를 사용하고 반환된 위치의 항목이 대상과 일치하는지 확인하는 것입니다. 그러나 이 방법은 대상이 목록의 가장 큰 요소보다 큰 경우에 대한 경계 검사와 같은 추가적인 복잡성을 도입합니다.
더 간단하고 직접적인 해결책은 명시적으로 확인하는 사용자 정의 이진 검색 기능을 구현하는 것입니다. 결과를 반환하기 전에 항목이 있는지 확인하십시오. 예는 다음과 같습니다.
from bisect import bisect_left def binary_search(a, x, lo=0, hi=None): if hi is None: hi = len(a) pos = bisect_left(a, x, lo, hi) # find insertion position return pos if pos != hi and a[pos] == x else -1 # don't walk off the end
이 함수는 정렬된 목록 a, 대상 값 x, 선택적인 검색 하한 및 상한을 사용합니다. bisect_left를 사용하여 x에 대한 삽입 지점을 찾은 다음 해당 위치의 항목이 대상과 일치하는지 확인합니다. 일치하는 항목이 발견되면 함수는 위치를 반환합니다. 그렇지 않으면 -1을 반환하여 항목이 없음을 나타냅니다.
이 명시적 검사를 통합하면 불필요한 오버헤드나 제한을 도입하지 않고도 정렬된 목록에 항목이 있는지 여부를 효율적으로 확인할 수 있습니다.
위 내용은 Python에서 이진 검색을 사용하여 정렬된 목록에 항목이 있는지 효율적으로 확인하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Python은 해석 된 언어이지만 편집 프로세스도 포함됩니다. 1) 파이썬 코드는 먼저 바이트 코드로 컴파일됩니다. 2) 바이트 코드는 Python Virtual Machine에 의해 해석되고 실행됩니다. 3)이 하이브리드 메커니즘은 파이썬이 유연하고 효율적이지만 완전히 편집 된 언어만큼 빠르지는 않습니다.

USEAFORLOOPHENTERATINGOVERASERASERASPECIFICNUMBEROFTIMES; USEAWHILLOOPWHENTINUTIMONDITINISMET.FORLOOPSAREIDEALFORKNOWNSEDINGENCENCENS, WHILEWHILELOOPSSUITSITUATIONS WITHERMINGEDERITERATIONS.

Pythonloopscanleadtoerrors likeinfiniteloops, modifyinglistsdizeration, off-by-by-byerrors, zero-indexingissues, andnestedloopineficiencies.toavoidthese : 1) aing'i

ForloopSareadvantageForkNowniTerations 및 Sequence, OffingSimplicityAndInamicConditionSandunkNowniTitionS 및 ControlOver Terminations를 제공합니다

Pythonusesahybridmodelofilationandlostretation : 1) ThePyThoninterPretreCeterCompileSsourcodeIntOplatform-IndependentBecode.

Pythonisbothingretedandcompiled.1) 1) it 'scompiledtobytecodeforportabilityacrossplatforms.2) thebytecodeisthentenningreted, withfordiNamictyTeNgreted, WhithItmayBowerShiledlanguges.

forloopsareusedwhendumberofitessiskNowninadvance, whilewhiloopsareusedwhentheationsdepernationsorarrays.2) whiloopsureatableforscenarioScontiLaspecOndCond


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

드림위버 CS6
시각적 웹 개발 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기