알고리즘세계에 이제 입문했다...!
시간이 적게 걸리는 코드란 입력값N의 길이만큼 몇 번 실행되는지에 따라 달라지는데,
예를 들면
for num in array: # array 의 길이만큼 아래 연산이 실행
for compare_num in array: # array 의 길이만큼 아래 연산이 실행
if num < compare_num: # 비교 연산 1번 실행
break
else:
return num
array의 길이만큼 실행했다면 N*N = N^2 이다
지수형태는 N이 커지면 기하급수적으로 증가하므로 시간이 엄청! 오래걸린다고 보면 된다.
하지만
for num in array: # array 의 길이만큼 아래 연산이 실행
if num > max_num: # 비교 연산 1번 실행
max_num = num # 대입 연산 1번 실행
위와 같은 경우엔 array를 1번 돌 동안 비교연산과 대입연산을 하는 것이기 때문에 시간은 N+N =2N 걸린다고 보면 된다.
지수형태에 비하면 상수값의 영향은 미미하므로
시간이 적게 걸리는 코드를 작성하고 싶다면 array를 최대한 적게 돌도록 하면 된다.
(+ 그런데 현업에선 weight 즉 상수N에서 상수값은 의미있다고 합니다.)