analogcoding

5/31 / Data Structures , big O notation , time complexity 본문

Be well coding/In Immersive

5/31 / Data Structures , big O notation , time complexity

be well 2019. 6. 1. 03:50

체크포인트 

 

big O notation / time complexity

 

O(1)  - Constant
O(log n)  -  Logarithmic
O(n)  -  Linear
O(n^2)  -  Quadratic

오답 정리.

 

Array 특정 인덱스 값을 remove 할 때 , 시작 부분에 값을 삽입할 때

O(n)   /  특정 인덱스를  알거나 시작 부분처럼 정해진 인덱스의 경우 O(1) 이라고 생각했다.

그렇지만 다른 배열들이 자리를 재배치 받게 되어서 O(n).

 

Linked list 에서 이미 한 번 주소값에 연결된 경우, index + 1 에 새 노드를 삽입할 때

O(1)   /  linked list 는 주소 값을 알면 한 번에 접근 가능.

 

Array

Insert Lookup(position) Assign Remove Find
O(n) O(1) O(1) O(n) O(n)


Linked Lists

Insert Lookup Assign Remove Find
O(1) O(n) O(n) O(1)  O(n)

 

Doubly-Linked lists

Insert Lookup Assign Remove Find
O(1) O(n) O(n) O(1) O(n)

 

각 data structure 가 사용되는 예시

 

 

 

How Hash tables work

 

데이터를 관리 / 유지하는 구조.

 

hash function 은 입력값이 일정 규칙을 거쳐서 hash table 에 인덱스(key)를 저장  / 해시값(value)

 

key 와 value가 있음.

 

정보를 array 에 저장.

해쉬함수를 거쳐 key 를 숫자로 변경하고 그 숫자에 해당하는 array[index] 에 배치한다. 

겹칠 경우 linked list 로 저장.

 

 

 

후기.

 

오늘 정말 12시 반까지 페어님과 함께 불 태웠다.. 다 끝낼 때까지 집에 못 간다는 긍정적인 약속?을 지켜냈다.

다 이해하고 풀어내긴 했지만 다시 한 번 쭉 훑으면서 어떻게 작성했는 지 꼭 다시 봐야겠다. 앉은 자리에서 12시간 넘게 

진행했다. 끈기도 집중력도 별로인 나지만 누군가와 함께 코드를 적어나가면서 토론하고 왜? 에 대해서 생각하니 
시간이 정말 빠르게 지나갔다.. 벌써 주말이라니.. 주말 아닌 주말이지만 ㅠㅠ

'Be well coding > In Immersive' 카테고리의 다른 글

6/3 / callback , value  (0) 2019.06.03
6/1 / Instantiation Patterns 2  (0) 2019.06.03
5/30 / Object.create , Inheritance Patterns  (0) 2019.05.30
5/29 / this , Vscode  (0) 2019.05.29
5.28 / Scope , Closure , memorize , stringify  (0) 2019.05.28
Comments