시간복잡도 (횟수복잡도 라고 하고 싶다.)

야 나 개 ·2021년 11월 16일
0
post-thumbnail

아니 개발자 공부를 레벨업 하면 만나게 되는 시간복잡도에 대해 잠깐 잡고 넘어가자 ......(별것도 아닌 문제들이 발목잡는다...)

표현방법

형님들 ... 표현방법 부터 하고 시작하겠습니다.

1.O(1) : 상수 시간

그냥 하나 하나 씩 탐색하는것 (제일 편하다...그리고 엄청 오래걸린다.)

2.O(logN) : 로그 ex. 16 = 4

이진 탐색이라고 한다.
예를 들면
[1,2,3,4,5,6,7,8,9,10]
이 배열에서 2를 찾을때는 배열을 반으로 짤라서 확인하고
[1,2,3,4,5]
이렇게 나눠서 찾으면 횟수가 줄어든다. 오예 (나 진짜 이해함)
[6,7,8,9,10]

그리고 또 나누고 이런식으로 코딩을 짜주면 된당 ~~

3.O(N): 직선(선형)

반복문에 들어온 숫자만큼 반복하는거

4.O(NlogN) : 선형로그 16log16

2중 반복문이 돌게 되는거
반복문 반복문 되는고
4번
4번 = 16번 돌게 된다. 엄청 돌아돌돌라

(...별로 안좋은 방법이다.)
꼭 나쁜건 아닌데.....(뭐라는거 이**가 ....)
어쩌라고 쓰라고 말라고? ...

5.O(N^2) : 제곱 256

형들 이건 횟수가 제곱되는거...

삼중 보안

6.O(2^N) : 지수 (N의 N제곱)

하.......이건 정말 답없지?.......

결론

알고리즘은
자기와의 싸움이다.

1티어는
2중반복문 보단.. 이진탐색법....ㅇㅋ?

추가

공간복잡도

알고리즘을 풀때 배열을 괜히 크게 잡지 말자

profile
야 나도 개발자 될 수 있어

0개의 댓글

관련 채용 정보