실제로는 printf()
함수의 실행 시간이 무엇인지 궁금합니다. O (n) 또는 Ω (n) 여부에 관계없이 printf
기능의 실행 시간을 어떤 기준으로 결정할 수 있습니까? 화면에 한 줄만 출력하는 경우처럼 특정 숫자의 CPU주기가 걸리므로 O (1)이 될 수 있습니다. 그러나 printf
이 어떻게 사용되는지 루프에 사용 된 경우 어떻게됩니까? 여러 번 printf()
함수를 호출 할 것입니다, 그럼 뭐야? 그것은 O (n) 또는 무엇일까요?printf() 함수의 실행 시간
답변
걸리는 시간은 항상 인쇄 할 문자 수에 비례하므로 Θ .
하지만 문자 수는 N이 아니 었나요?
문자열 목록 (예 : 정렬 알고리즘)에서 작동하는 알고리즘을 평가할 때 모든 알고리즘에 동일하게 영향을 미치기 때문에 문자열의 길이가 늘어날 때 무슨 일이 발생하는지 연구하는 것은 일반적으로 흥미롭지 않습니다. 우리는 목록의 크기가 커지면 어떻게되는지 연구하는 데 더 많은 관심이 있습니다. 그렇게하기 위해 우리는 문자열의 길이가이 경우 일정하다고 가정합니다.
예를 들어, 정렬 알고리즘은 O ((N log N) * M)을 취할 수 있습니다. 여기서 N은 요소의 수이고 M은 문자열의 길이입니다. 문자열의 길이를 일정하다고 생각하면 O (N log N)가되고 print
은 Θ (M)에서 Θ (1)로 바뀝니다.
C 표준은 실행 시간이 printf
에 대해서는 아무 것도 말하지 않습니다. 그것은 그것의 행동만을 지정합니다. 다른 구현은 다른 것보다 효율적이거나 덜 효율적일 수 있습니다.
절대 실행 시간이 아닌 O (n) 또는 Ω (n)에 대해 질문했습니다. printf
이 O (n)이되어서는 안되는 이유를 생각할 수 없습니다. 여기서 n은 인쇄되는 문자 수입니다. (나는 O (n)과 Ω (n) 사이의 구분을 기억하지 못한다. 대학 이후로는 얼마간이 걸렸다.)
매우 긴 시퀀스 인 %n
지정자를 사용하여 형식 문자열을 구성 할 수 있다고해도, 출력을 생성하지 않는 동안 형식 문자열의 길이에 비례하는 시간이 걸릴 것입니다. 그래서 가장 일반적인 경우에 O (m + n)이라고 가정합니다. 여기서 m은 형식 문자열의 길이이고 n은 인쇄되는 문자 수입니다.
구현시 printf
은 형식 문자열과 다른 인수를 통과하여 출력 문자를 생성합니다. 나는 가능성있는 복잡성이 O (n)을 초과하는 경우는 없다고 생각합니다. 당신이 당신의 프로그램에서 루프 printf
를 호출 할 경우, 더 이상 printf
의 실행 시간에 대해 물어하지만 printf
를 호출하는 일이 당신의 알고리즘의 실행 시간에 대한있는
. 더 이상의 정보없이 대답하는 것은 불가능합니다.
- 1. 내장 함수의 실행 시간
- 2. C 함수의 실행 시간 계산
- 3. MATLAB 함수의 실행 시간 향상
- 4. printf() 함수의 인수 목록은 무엇입니까?
- 5. 이 재귀 함수의 큰 세타 실행 시간
- 6. GCD 함수의 반복 실행 시간 (유클리드 알고리즘)
- 7. 옥타브/matlab 함수의 실행 시간 최적화
- 8. 파이썬 (플라스크)에서 함수의 최대 실행 시간
- 9. 주어진 함수의 실행 시간 계산하기 파이썬
- 10. 이 printf 함수의 정의되지 않은 동작입니까?
- 11. 함수의 컴파일 시간 감지
- 12. 시간 초과 함수의 성능
- 13. ackermann 함수의 시간 복잡성
- 14. 알고리즘 분석 : RNG에 기반한 재귀 함수의 예상 실행 시간
- 15. 두 줄 사이의 실행 시간 또는 함수의 함수
- 16. Python 저수준 대 고급 성능 (회유 함수의 실행 시간 분석)
- 17. 이상한 Cudamemcpy 실행 시간
- 18. MPI 글로벌 실행 시간
- 19. 자기 실행 함수의 인수
- 20. 함수의 배열을 실행
- 21. 함수의 실행 제어
- 22. 함수의 삼항 실행
- 23. NodeJS 함수의 실행 순서
- 24. Python 함수의 비동기 실행
- 25. 메이플에서 시간 종속 함수의 시간 미분
- 26. OCaml : 최상위에서 실행 시간 측정
- 27. 스크립트 실행 시간
- 28. 예상 실행 시간 대 최악의 실행 시간
- 29. printf() 및 세그먼트 화 오류 실행
- 30. printf()를 호출하여 실행 파일을 편집하십시오.