Measuring Cost

Counting Operations


입력 크기와 횟수를 셀 연산을 먼저 정한 뒤 코드 한 줄의 실행을 따라 정확한 횟수를 센다. 이 수는 정한 계산 모형의 값이며 기계 시간 자체가 아니다.

입력 크기(input size)처리할 자료의 양을 나타내는 기준이다. 합산 함수는 더하는 정수의 개수, 목록 순회는 원소 수 len(a)를 n으로 둔다.
연산 수(operation count)미리 정한 연산이 실행되는 횟수다. 여기서는 명시적인 대입만 센다.
정확한 식초기 대입과 반복 대입을 더한다.

한 줄씩 실행하며 대입 횟수를 누적한다

함수와 n에 따라 코드 줄별 실행 횟수가 달라진다. 단계 이동은 현재 실행과 누적 연산 수를 같은 시점에 보여 준다.

여기서 세는 연산 total, value, count에 값을 넣는 명시적 대입만 센다. 반복 제어, 함수 호출, 반환은 세지 않는다.
현재 실행 상태

0회

코드에서 초록 막대가 붙은 줄이 방금 실행한 대입이고, 줄 끝 표시는 그 줄이 실행되는 횟수다. 현재 실행 상태 칸의 큰 숫자는 지금까지 센 대입 수다.

계산 모형이 달라지면 세는 대상도 달라진다

대입 모형과 산술 모형은 횟수를 세는 연산이 서로 다르다. 계산된 식은 해당 모형의 연산 수이지 기계 시간이 아니다.

명시적 대입 모형

sum_loop: T(n) = 1 + n
sum_extra: T(n) = 1 + 2n
total과 count 갱신: T(n) = 2 + 2n

반복 안의 대입 한 줄이 늘면 n회가 추가된다.

합 공식의 산술 연산 모형

n + 1 · 1회
곱셈 · 1회
정수 나눗셈 · 1회

지정한 산술 연산은 3회지만 큰 정수의 실제 시간은 자릿수에도 영향을 받는다.

연산 수는 코드 구조를 설명하고 실행 시간은 특정 언어, 구현, 컴퓨터에서 측정한 값이다.