🔀비선형 자료 구조
·
Computer Science/Data Structure
비선형 자료구조란 일렬로 나열하지 않고 자료 순서나 관계가 복잡한 구조를 말합니다. 일반적으로 트리나 그래프를 말합니다.🔗 그래프그래프는 정점과 간선으로 이루어진 자료 구조를 말합니다.🧭 정점과 간선어떠한 곳에서 어떠한 곳으로 무언가를 통해 간다고 했을 때 '어떠한 곳'은 정점(vertex)이 되고 '무언가'는 간선(edge)이 됩니다.단방향 간선과 양방향 간선이 있습니다.정점으로 나가는 간선을 정점의 outdegree라고 하며, 들어오는 간선을 해당 정점의 indegree라고 합니다. 앞 그림의 정점 V는 outdegree는 세 개, indegree는 두 개인 상태입니다. 또한, 정점은 약자로 V 또는 U라고 하며, 보통 어떤 정점으로부터 시작해서 어떤 정점까지 간다를 "U에서부터 V로 간다."라고..
📘선형 자료 구조
·
Computer Science/Data Structure
선형 자료 구조는 데이터가 일렬로 차곡차곡 나열된 형태의 자료 구조를 말합니다.데이터가 한 줄로 정렬되어 있어서 앞에서부터 뒤까지 순서대로 접근하는 특징을 가집니다.🔗 연결 리스트연결 리스트는 데이터를 감싼 노드들을 포인터로 연결해 놓은 구조라서, 메모리를 필요할 때마다 가져와서 붙일 수 있습니다. 그래서 공간 활용이 좋고, 중간에 삽입·삭제가 빠릅니다(O(1)). 하지만 임의 위치 탐색은 처음부터 차례대로 따라가야 해서 O(n) 이 걸립니다.prev 포인터와 next 포인터로 앞과 뒤의 노드를 연결시킨 것이 연결 리스트이며, 연결 리스트는 싱글 연결 리스트로, 이중 연결 리스트, 원형 이중 연결 리스트가 있습니다. 참고로 맨 앞에 있는 노드를 헤드(head)라고 합니다.싱글 연결 리스트 : next ..
⏳복잡도
·
Computer Science/Data Structure
자료 구조(data structure)는 데이터를 효율적으로 관리하고, 빠르게 수정·삭제·탐색·저장할 수 있도록 구성한 구조적 집합을 말합니다.⏱️ 시간 복잡도시간 복잡도란 ‘입력 크기(n)에 따라 알고리즘이 실행되는 데 필요한 시간 증가량’을 분석하는 척도입니다.🧮 빅오 표기법주요 로직의 반복 횟수를 기준으로 알고리즘의 성능을 표현하며, 이를 빅오(Big-O) 표기법으로 나타냅니다.예를 들어, 입력 크기 n에 대한 알고리즘 수행 시간이 10n² + n이라고 하면 다음과 같은 반복문 구조를 상상할 수 있습니다.for(int i=0;i빅오 표기법은 입력 크기(n)가 커질 때 가장 크게 영향을 미치는 항만 남기고 나머지는 제거하는 방식입니다.위 알고리즘의 경우 n² 항이 지배적이므로 시간 복잡도는 O(n²..