Publié par admin dans
인덱스의 시간 복잡성계산Of는 이전 예제만큼 간단하지 않습니다. 이 함수는 재귀적입니다. 로그 시간 복잡성이 있는 알고리즘은 이진 트리의 작업이나 이진 검색을 사용할 때 일반적으로 발견됩니다. 정렬된 목록에서 요소의 위치를 찾아야 하는 이진 검색의 예를 살펴보겠습니다. Mergesort는 준선형 시간 복잡성을 가진 효율적이고 범용적인 비교 기반 정렬 알고리즘입니다. 설정. 이러한 종류의 시간 복잡성은 일반적으로 무차별 대입 알고리즘에서 볼 수 있습니다. 버블 정렬은 목록의 다른 모든 값과 비교해야하기 때문에 이차 시간 복잡성의 좋은 예입니다. , 페이스 북, 트위터, 아마존 당신은 Big-O 표기고를 사용하여 시간 복잡성에 대한 질문에 대답 할 준비를해야합니다.
많은 학생들이 시간 복잡성의 개념을 이해하면서 혼란스러워하지만,이 문서에서는 매우 간단한 예로 설명 할 것입니다 : 알고리즘의 시간 복잡성은 가장 일반적으로 큰 O 표기법으로 표현됩니다. 시간 복잡성을 나타내는 점근 표기어입니다. 우리는 다음 튜토리얼에서 자세히 그것에 대해 공부할 것입니다. 시간 복잡성은 실행을 완료하기 위해 모든 알고리즘에서 수행하는 기본 단계 수를 계산하여 가장 일반적으로 추정됩니다. 위의 예제와 마찬가지로 첫 번째 코드의 경우 루프는 n 번 실행되므로 시간 복잡성은 최소한 n이 되고 n값이 증가하면 시간이 증가합니다. 두 번째 코드의 경우 시간 복잡성은 일정하지만 n 값에 종속되지 않으므로 항상 1단계로 결과를 제공합니다. 이전 알고리즘을 앞으로 가져 가면 위의 Quick Sort의 작은 논리가 있습니다 (나중에 자세히 살펴보겠습니다). 이제 빠른 정렬에서 목록을 매번 절반으로 나누지만 반복 N 시간을 반복합니다 (N은 목록 크기임). 따라서 시간 복잡성은 N *로그 (N)가 될 것입니다. 실행 시간은 로그학인 N 루프(반복 또는 재귀)로 구성되므로 알고리즘은 선형과 로그학의 조합입니다.
재귀 함수가 무엇인지 모르는 경우 재귀 함수를 특정 조건에서 자신을 호출하는 함수로 설명할 수 있습니다. 아시다시차면 재귀 함수의 시간 복잡성은 함수가 호출되는 횟수와 단일 함수 호출의 시간 복잡성에 따라 달라지므로 정의하기가 약간 어렵습니다. O(expression)는 식과 같은 속도로 느려지는 함수 집합입니다. 모든 입력 값에 대해 알고리즘에 필요한 최대값을 나타냅니다. 알고리즘의 시간 복잡성중 최악의 경우를 나타냅니다. 요인 시간 복잡성이 있는 알고리즘의 좋은 예는 n 개체의 가능한 모든 순열을 생성하는 데 사용되는 힙알고리즘입니다. 배열을 정렬하는 가장 좋은 방법은 무엇입니까? 이전에는 O(n2)의 시간 복잡성이 있는 버블 정렬을 사용하는 솔루션을 제안했습니다. 우리는 더 잘 할 수 있습니까? StackOverflow에서 재귀 피보나치 알고리즘의 시간 복잡성에 대한 자세한 설명을 찾을 수 있습니다. 이차 시간 복잡성이 있는 함수의 증가율은 n2입니다. 입력이 크기 2이면 4개의 작업을 수행합니다.
입력이 크기 8이면 64정도가 소요됩니다. 예를 들어 선택 정렬 및 삽입 정렬에는 O(n2) 시간 복잡성이 있습니다. 4) 루프 변수가 분할되면 O(Logn) 루프의 시간 복잡성이 O(Logn)로 간주되어 일정한 양을 곱합니다. 알고리즘/코드의 시간 복잡성은 특정 코드를 실행하는 데 필요한 실제 시간과 같지 않지만 문이 실행되는 횟수는 아닙니다.