logo

모든 정렬 알고리즘의 시간 복잡도

알고리즘의 효율성은 두 가지 매개변수에 따라 달라집니다.

  1. 시간 복잡도
  2. 공간 복잡도

시간 복잡도:

시간 복잡도는 총 소요 시간이 아닌 특정 명령어 세트가 실행되는 횟수로 정의됩니다. 소요되는 총 시간은 사용된 컴파일러, 프로세서 속도 등과 같은 일부 외부 요인에 따라 달라지기 때문입니다.



공간 복잡도:

공간 복잡도는 프로그램 실행을 위해 필요한 총 메모리 공간입니다.

둘 다 입력 크기(n)의 함수로 계산됩니다. 여기서 한 가지 중요한 점은 이러한 매개변수에도 불구하고 알고리즘의 효율성은 다음 사항에 따라 달라진다는 것입니다. 자연 그리고 크기 그만큼 입력.

시간 복잡도의 유형:

  1. 최고의 시간 복잡도: 알고리즘에 더 적은 시간이 걸리거나 최소 시간이 걸리는 입력을 정의합니다. 가장 좋은 경우에는 알고리즘의 하한을 계산합니다. 예: 선형 검색에서는 대용량 데이터의 첫 번째 위치에 검색 데이터가 있을 때 가장 좋은 경우가 발생합니다.
  2. 평균 시간 복잡도: 평균적인 경우 모든 무작위 입력을 취하고 모든 입력에 대한 계산 시간을 계산합니다.
    그런 다음 이를 총 입력 수로 나눕니다.
  3. 최악의 시간 복잡도: 알고리즘에 오랜 시간이 걸리거나 최대 시간이 걸리는 입력을 정의합니다. 최악의 경우 알고리즘의 상한을 계산합니다. 예: 선형 탐색에서는 대용량 데이터의 마지막 위치에 탐색 데이터가 있을 때 최악의 경우가 발생한다.

다음은 마지막 순간에 참조할 수 있는 빠른 개정 시트입니다.



연산 시간 복잡도 공간 복잡도
최상의 평균 최악의 최악의
선택 정렬 2) 2) 2) 오(1)
버블정렬 에) 2) 2) 오(1)
삽입 정렬 에) 2) 2) 오(1)
힙 정렬 O(n로그(n)) O(n로그(n)) O(n로그(n)) 오(1)
빠른 정렬 O(n로그(n)) O(n로그(n)) 2) 에)
병합 정렬 O(n로그(n)) O(n로그(n)) O(n로그(n)) 에)
버킷 정렬 O(n +k) O(n +k) 2) 에)
기수 정렬 오(nk) 오(nk) 오(nk) O(n + k)
개수 정렬 O(n +k) O(n +k) O(n +k) 화살)
쉘 정렬 O(n로그(n)) O(n로그(n)) 2) 오(1)
팀 정렬 에) O(n로그(n)) O(nlog(n)) 에)
트리 정렬 O(n로그(n)) O(n로그(n)) 2) 에)
큐브 정렬 에) O(n로그(n)) O(n로그(n)) 에)

또한 다음을 참조하세요.

  • 기사 검색 및 정렬
  • 전년도 정렬에 관한 GATE 질문
  • 삽입정렬의 시간과 공간 복잡도
  • 선택 정렬의 시간 및 공간 복잡도
  • 버블정렬의 시간과 공간 복잡도
  • 퀵 정렬의 시간과 공간 복잡도
  • 병합 정렬의 시간 및 공간 복잡성
  • 기수 정렬 알고리즘의 시간 및 공간 복잡도