알고리즘 과정을 거치며 정렬 계산의 시간 복잡도가 O (n + k) 인 것을 보았습니다. 여기서 k는 숫자의 범위이고 n은 입력 크기입니다. 내 질문은 k = 0 (n) 또는 O (n)와 같이 k와 n의 차이가 너무 큰 경우 복잡성을 O (n)라고 말할 수 있습니까? 또는 O (n)? 그렇다면이 경우 카운팅 정렬은 현명한 접근법이 아니며 병합 정렬을 사용할 수 있습니다. 내가 맞습니까?정렬 계산의 시간 복잡도
10
A
답변
7
예, 당신은 모든 카운트에서 정확합니다.
한층 더 강하게 문을 만들 수있다 : 때 K = O를 (N 2) 또는 (N 3) O, 우리가 계산 정렬의 복잡도는 Θ라고 말할 수 (N 2) 또는 Θ (n).
3
이론적으로 O (n) 시간으로 정렬 할 수 있습니다. 값의 범위가 1 ~ n 이면 기본 n으로 변환하고 기수 정렬을 수행합니다. 기본 n에서 숫자는 3 자리 숫자이므로 실행 시간은 기본 변환의 O (3n + 3n) + O (n)입니다. 전반적인 O (n).
+0
일반적으로 보류하는 것 같지 않습니다. – jfs
관련 문제
- 1. 정렬 알고리즘의 시간 복잡도
- 2. 트리 정렬 : 시간 복잡도
- 3. 정렬 알고리즘의 시간 복잡도
- 4. 버블 정렬 알고리즘 찾기 시간 복잡도
- 5. 시간 복잡도
- 6. 시간 복잡도 :
- 7. 시간 복잡도
- 8. 시간 복잡도
- 9. 최악의 경우 시간 복잡도
- 10. 데이터베이스 쿼리 시간 복잡도
- 11. 셸 정렬의 시간 복잡도?
- 12. 알고리즘의 시간 복잡도
- 13. 함수의 공간 복잡도 및 시간 복잡도 계산
- 14. 버블 정렬의 실행 시간 복잡도
- 15. 가장 가까운 이웃 시간 복잡도
- 16. 아래 코드의 시간 복잡도
- 17. 모듈러 산술의 시간 복잡도
- 18. 프로그램의 시간 복잡도
- 19. while 루프의 시간 복잡도
- 20. 최악의 시간 복잡도
- 21. map.find() 시간 복잡도
- 22. BST의 시간 복잡도
- 23. Arrays.equals()의 시간 복잡도
- 24. 샘플 코드의 시간 복잡도
- 25. 전철 어구 시간 복잡도
- 26. 루프의 쎄타 시간 복잡도
- 27. 범위 쿼리 시간 복잡도
- 28. 알고리즘 시간 복잡도 분석
- 29. 프로그램의 시간 복잡도
- 30. 조건문을 사용한 시간 복잡도
답을 주셔서 감사합니다. 나는 단지 기수가 "n"인 숫자에 대해서 O (1) 연산을한다고 가정했는지 확인하고 싶었습니다. –