본문 바로가기

cs/자료구조37

[알고리즘 분석]4. Running Time 목차 1. Analysis of Algorithms(알고리즘 분석) 2. Running Time 3. Experimental Studies(실험적 분석법) 4. Theoretical Analysis(이론 분석) 1. Analysis of Algorithms(알고리즘 분석) Analysis of Algorithms(알고리즘 분석)은 Data Structure와 밀접한 연관이 있는 것으로, 간단히 생각하자면 function procedure(연산)이라고 할 수 있습니다. 위의 그림과 같이, 간단히 생각하면 들어오는 Input 값을 Output 값으로 변화시키는 것을 말합니다. 2. Running Time 대부분의 알고리즘은 input 값을 output 값으로 변환시킵니다. 이때, 대부분 알고리즘의 시간은 i.. 2021. 2. 18.
[Linked Lists]3. 단일 연결 리스트 구현 목차 1. Singly LInked LIst에 필요한 함수 목록 2. class Node 3. Empty() 4. LIst_size() 5. Print() 6. Append(data) 7. Delete(idx) 8. Insert(idx, data) 9. 테스트 1. Singly Linked List에 필요한 함수 목록 위의 목차에서 추측할 수 있는 내용이지만, Singly LInked List에 필요한 함수의 목록으로는 1. Empty() : 연결 리스트가 비어있는지 확인하는 함수 2. List_size(): 연결 리스트의 크기를 확인하는 함수 3. Print(): 연결리스트에 포함되어 있는 모든 data를 출력하는 함수 4. Append(data): 연결리스트에 data를 추가하는 함수 5. Delet.. 2021. 2. 18.
[Linked Lists]2. 단일 연결 리스트 - 2 목차 1. node의 구성 2. 특별한 node 3. Head에서의 삽입 4. Head에서의 삭제 5. Tail에서의 삽입 6. Tail에서의 삭제 1. node의 구성 앞선 게시물에서도 언급하였듯이, node class는 그 node가 지닌 data와, Singly Linked List의 경우 다음 node의 주소값을 지니고 있습니다. 이를 python으로 표현해보면, class Node: def __init__(self, data: int): self.data = data self.next = None 이렇게 나타낼 수 있습니다. 2. 특별한 node Linked List는 크게 2가지 특별한 node가 있다고 할 수 있습니다. 1. Head - 맨 앞 node으로서, LInked List는 시작 n.. 2021. 2. 18.
[Linked Lists]1. 단일 연결 리스트 - 1 목차 1. ADT(Abstract data type) 2. Array vs Linked list 3. Singly Linked List 1. ADT란? ADT는 Abstract data type의 약자로서, 추상적인 자료형을 의미합니다. 이는 특정 자료형이 1. 어떤 데이터를 사용(저장)? 2. (저장하는 데이터로) 어떤 기능? 3. 성능 분석 위 3가지를 분석하는 자료형을 뜻합니다. ADT의 종류에는 여러가지가 있으며, 우선 Array 와 Linked List에 대해서 알아보도록 하겠습니다. 2. Array vs Linked List? 어떤 연속된 데이터를 저장한다고 하였을 시, 흔히 사용하는 방식으로 Array(배열)과 Linked List(연결 리스트)가 있습니다. 두 방법 모두 연속된 데이터를 저.. 2021. 2. 18.
자료구조 정리 이 카데고리에서는 코딩테스트의 필수 덕목인 자료구조에 대해 정리해 보도록 하겠습니다. 코딩테스트 준비를 하면 할 수록 시간 복잡도 설계에 따라 문제를 해결할 수 있는 능력이 많이 달라진다는 것을 깨달았으며, 이를 처음부터 정리해보도록 하겠습니다. 2021. 2. 18.