시간복잡도 logn 예제

이미 말했듯이 일반적으로 Big-O 표기법의 시간 복잡성을 설명 합니다. 표기법의 공식적인 정의에 관련된 수학이 많이 있지만 비공식적으로 Big-O 표기법의 경우 최악의 경우 알고리즘의 대략적인 실행 시간을 제공한다고 가정할 수 있습니다. Big-O 표기법의 경우 입력 데이터(n)의 증가하는 크기에 따라 알고리즘의 효율성을 설명합니다. 예를 들어 입력이 문자열인 경우 n은 문자열의 길이가 됩니다. 목록인 경우 n은 목록의 길이 등이 됩니다. O (1) 최고의 가능한 시간 복잡성입니다! 해시 테이블과 같은 데이터 구조는 알고리즘을 현명하게 사용하여 일정한 시간 작업을 풀고 작업을 극적으로 가속화합니다. 예를 들어 다음과 같은 사양을 가지고 있는 모델 머신을 살펴보겠습니다: –Single Processor -32 비트 –순차적 실행 -1 단위 시간 산술 및 논리 연산에 대 한 -1 할당 및 반환 문을 위한 단위 시간 아래 설명 사용 하 고 있습니다. 완전히 균형 잡힌 바이너리 트리의 경우 로그 시간 복잡성을 얻는 방법을 이해하는 데 도움이됩니다. 좋아, 하지만 우리는 알고리즘의 시간 복잡성을 설명하는 방법? 이 모든 이야기를 읽은 후에도 시간 복잡성과 Big-O 표기법의 중요성에 대해 여전히 의구심이 있다면 몇 가지 사항을 명확히 해 보겠습니다. 아이디어는 알고리즘이 O(log n)인 경우 구조1을 1로 스크롤하는 대신 구조를 반으로 나누고 각 분할에 대해 일정한 수의 작업을 수행한다는 것입니다. 답변 공간이 계속 분할되는 검색 알고리즘은 O(log n)입니다. 이 것의 예는 숫자를 찾을 때까지 정렬 된 배열을 반으로 분할하는 이진 검색입니다.

알고리즘은 입력 데이터(n)에 종속되지 않을 때 일정한 시간을 가라고 합니다. 입력 데이터의 크기에 관계없이 실행 시간은 항상 동일합니다. 예를 들어 알고리즘이나 코드를 작성할 때마다 점근의 복잡성을 분석하려고 합니다. 그것은 시간의 복잡성과 다릅니다. 또 다른 예는 O(log2n)의 실행 시간이 있는 이진 검색입니다. 더 많은 수학적 설명을 들어, 시간 복잡성이 여기에 기록 n에 도착하는 방법을 체크 아웃 할 수 있습니다. 예를 들어 https://hackernoon.com/what-does-the-time-complexity-o-log-n-actually-mean-45f94bb5bfbf 간단한 비교 기반 정렬 알고리즘은 이차적입니다(예: