공부 내용

복잡도 개념 정리

복잡도: 알고리즘의 성능을 나타내는 척도.

  • 시간 복잡도: 알고리즘을 위해 필요한 연산의 횟수
  • 공간 복잡도: 알고리즘을 위해 필요한 메모리의 양
# 연산 횟수는 1이므로 시간복잡도는 O(1)
a = 5
b = 7

print(a+b)

수행 시간 측정 코드

# 수행 시간 측정 코드
import time

start_time = time.time() # 측정 시작

# 프로그램 소스코드
end_time = time.time() # 측정 종료

print("time: ", end_time - start_time) # 수행 시간 출력

선택 정렬과 퀵 정렬(파이썬 기본 정렬) 수행 시간 비교

from random import randint
import time

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) # 수행 시간 출력

# 배열을 다시 무작위 데이터로 초기화
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) # 수행 시간 출력 

출처 && 깃허브

이것이 취업을 위한 코딩 테스트다 with python

github

0개의 댓글