개발/자료구조 2

Time Complexity Analysis

Time Complexity 프로그램에서 사용하는 알고리즘이나 자료구조에 따라 Time Complexity가 달라진다 자료가 적을때는 어느방법을 사용하더라도 비슷한 시간이 걸릴수 있지만 자료가 많아질 수록 그 차이는 기하 급수적으로 증가할수 있기 때문에 어떤 알고리즘, 자료구조를 사용해야할지를 알고 결정하는것은 프로그래머로써 꼭 필요한 능력이다. Big-O 표기법 시간복잡도에서 상수를 때고 표기한다 ex) 3n^2 -> O(n^2), 4 -> O(1) 시간복잡도는 항상 최악의 경우로 표기한다. Data Structure whit Time Complexity Lookup Assign Insert Remove Find Array O(1) O(1) O(n) O(n) O(n) Lined Lists O(n) O(..

개발/자료구조 2020.09.08

자료구조 Graph, Tree, BST

Graph 그래프는 노드, 노드를 연결하는 간선 으로 구성된 자료구조 무방향 그래프(양쪽 노드 모두 상대 노드에 접근가능) 방향성 그래프(한쪽 노드에서만 상대 노드에 접근가능) 진입차수: 해당 노드에 접근할 수 있는 다른 노드의 수 진출차수: 해당 노드가 접근할수 있는 다른 노드의 수 인접행렬 그래프의 연결관계를 이차원 배열로 나타냄 장점: 구현이 쉽고 두 노드가 연결 되어있는지 확인이 쉽다.O(1) 단점: 한 노드에 연결된 모든 노드들에 방문하고 싶은경우 O(v)의 시간이 걸림 인접 리스트 각 노드의 연결관계를 리스트로 나타냄 장점: 간선의 개수에 비례하는 메모리 만을 차지함, 한노드에 연결된 모든 노드들에 방문하고 싶은경우 진출차수만큼의 시간복잡도를 가짐 단점: 두 노드가 연결되어있는지 확인하는데 O..

개발/자료구조 2020.09.07