본문 바로가기

Data Structure

(4)
[Data Structure] Heaps 힙이란? 힙은 기본적으로 완전 이진트리(complete Binary Tree)를 기본으로 한 자료 구조이며, 부모 노드와 자식 노드 간의 대소관계가 성립하는 자료구조이다. Heap (힙): 상위 노드의 값이 하위노드(들)의 값과 관련하여 특정 방식으로 정렬되는 트리 기반 데이터 구조이다. 힙은 최소 힙(부모 노드의 값이 자식의 값보다 작거나 같음) 또는 최대 힙(부모 노드의 값이 자식의 값보다 크거나 같음) 일 수 있다. 최소 힙의 목적은 부분 순서가 있는 객체를 저장하는 것이다. 최소 힙에서 최소 객체를 제거하는 빠른(O(log n)) 방법이 있다. 최소 힙은 최소 계산이 여러 개 있는 계산에 유용하다. 힙에서 최댓값을 추출하는 최대 힙이라는 유사한 구조가 있다. 힙은 최대 힙 이거나 최소 힙이고, 동..
[Data Structure] 자료구조란? 자료구조(Data Structure)는 컴퓨터 분야에서 여러 가지 문자, 숫자와 같은 자료들을 체계적으로 정리하고 구조화하는 방법을 배우는 이론이다. 자료구조는 컴퓨터 분야를 공부하는 사람이라면 필수적으로 알아야 하는 기초 상식이다. 우리는 컴퓨터를 가지고 현실의 문제를 해결한다. 하지만 컴퓨터와 현실 사이에는 표현하는 방법의 차이가 있다. 우리는 10진법을 사용하지만 컴퓨터는 2진법을 사용한다. 우리는 종이와 펜으로 계산을 하지만 컴퓨터는 전기의 켜짐과 꺼짐으로 데이터를 인식한다. 마찬가지로 자료를 다루는 방법에서도 컴퓨터와 현실에서는 차이를 보인다. 이 현실에서의 데이터를 컴퓨터에서 구조화하고 그 구조 안에서 데이터를 효율적으로 처리하고 각 구조의 효율성을 측정하는 것이 자료구조를 목표이다. 자료구조..
[Python] Linked List vs. Array Array : Array는 연속된 메모리 위치에 요소를 저장하므로, 저장된 요소들의 주소를 쉽게 계산할 수 있으며, 이를 통해 특정 인덱스에 있는 요소에 더 빠르게 접근할 수 있다. Linked List : Linked lists는 저장 구조에 덜 엄격하며(rigid) 요소는 보통 연속된 위치에 저장되지 않으므로 다음 요소를 참조 할 수 있는 추가 태그와 함께 저장해야 한다. Linked-List 표현 Array와 Linked-List 사이의 주된 차이점 Array Linked List 연속된 위치에 저장된다. 연속된 위치에 저장되지 않는다. 크기가 고정된다. 크기가 동적이다. 메모리는 컴파일 시 할당된다. 메모리는 실행시간에 할당된다. Linked List보다 메모리를 적게 사용한다. 데이터와 다음 노..
[Data Structure] 데이터 표현 방법 (Data representation) 컴퓨터에서의 데이터 표현 방법 (Data representation in computer) 컴퓨터는 기본적으로 0과 1을 통해 데이터를 표현한다. 문자, 숫자는 모두 0과 1로 표현되며 특정 규칙을 통해 해석을 할 때 그 의미를 갖는다. 예를 들어, 컴퓨터 과학에서 offset이라는 단어는 기준이 되는 주소에서 해당 주소가 얼마나 떨어져 있는지에 대한 변위차를 가리키는 단어이지만, 일반적인 영어에서는 '상쇄하다'라는 뜻으로 사용된다. 여기서 특정 규칙은 컴퓨터 과학에서 단어의 의미와 일반적인 영어에서의 의미이다. 0과 1을 나타내는 기준 단위는 비트(bit)이다. 이 비트들이 4개가 되면 니블(nibble)이 되고, 8개가 되면 바이트(byte)가 된다. 존 형식과 팩 형식 (Zone Decimal Fo..