N: 인풋 갯수 | 알고리즘 | 소요시간 | example |
---|---|---|---|
- | 1s | 반복 없이 원큐에 실행 되는 것 | |
- | 1s | 입력 N 을 받아서 반으로 계속 나눠가는 알고리즘 (e.g., binary search ) | |
1s | 1 중 for 문 | ||
1s | quick sort, merge sort, heap sort | ||
1s | 2중 for 문 | ||
1s | 3중 for문 | ||
1s | 크기가 N인 집합의 부분집합 | ||
1s | 크기가 N인 순열 |
O(1)
int sum = 0;
sum = N+(N+1)/2;
O(logN)
binary search
O(N)
for
문sum=0
for idx,val in enumerate(list):
sum+=1
O(NlogN)
O(N^2)
for
문for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
do_something
}
}
def selection_sort(N:int, A:list):
for i in range(0,N):
if i == N-1:
break
for j in range(i+1,N):
if A[i] > A[j]:
temp=A[j]
A[j]=A[i]
A[i]=temp
O(N^3)
3중 for 문
1초 소요 -> 입력(N): 500 개 라고 생각하면 될듯
O(2^N)
O(N!)
도 답 없기 때문에 for문 하나만 사용하는, len()
도 사용하지 않는 으로 풀기