파이썬에서는 프로그램 수행 시간과 메모리 사용량을 측정할 수 있다.
import time
start_time = time.time()
# 프로그램 소스코드
end_time = time.time()
print('time :', end_time - start_time) # 수행 시간 출력
어떤 알고리즘을 설계한 뒤에 시간 복잡도를 경험적으로 증명하고 싶을 때는 위와 같은 형태의 코드를 자주 이용한다.
예시)
from random import randint
import time
# 배열에 10,000개의 정수를 삽입
array = []
for _ in range(10000):
array.append(randint(1, 100)) # 1부터 100 사이의 랜덤한 정수
# 선택 정렬 프로그램 성능 측정
start_time = time.time()
# 선택 정렬 프로그램 소스코드
for i in range(len(array)):
min_index = i # 가장 작은 원소의 인덱스
for j in range(i + 1, len(array)):
if array[min_index] > array[j]:
min_index = j
array[i], array[min_index] = array[min_index], array[i] # 스와프
end_time = time.time()
print('선택 정렬 성능 측정:', end_time - start_time) # 수행 시간 출력
# 배열에 10,000개의 정수를 삽입
array = []
for _ in range(10000):
array.append(randint(1, 100)) # 1부터 100 사이의 랜덤한 정수
# 기본 정렬 프로그램 성능 측정
start_time = time.time()
# 기본 정렬 프로그램 소스코드
array.sort()
end_time = time.time()
print('기본 정렬 성능 측정:', end_time - start_time) # 수행 시간 출력
선택 정렬 성능 측정: 4.6644415855407715
기본 정렬 성능 측정: 0.0009996891021728516