728x90
반응형
SMALL

자료구조 및 알고리즘 4

해시 테이블(Hash Table)의 작동 방식과 시간 복잡도

1. 해시 테이블(Hash Table)이란?해시 테이블은 키(key)와 값(value)을 쌍(pair)으로 저장하는 자료 구조입니다. 빠른 데이터 저장과 검색을 위해 고안된 구조로, 해시 함수(hash function)를 사용하여 키를 배열의 인덱스로 변환합니다.쉽게 말해, 어떤 키를 입력하면 그 키를 특정 위치(인덱스)로 바꿔주는 함수가 있어서, 그 위치에 값을 저장하거나 찾아올 수 있는 구조입니다.2. 해시 함수(Hash Function)해시 함수는 임의의 크기를 가진 데이터를 고정된 크기의 해시 값으로 변환하는 함수입니다.해시 함수의 역할키를 인덱스로 변환: 해시 함수는 키를 배열의 인덱스로 사용할 수 있는 숫자로 변환합니다.균등한 분포: 좋은 해시 함수는 키들을 배열 전반에 걸쳐 고르게 분포시켜 ..

트리(Tree)와 그래프(Graph)의 차이점 및 예시

1. 트리(Tree)트리는 계층적인 구조를 표현하는 자료 구조입니다. 트리에서 각 요소는 노드(Node)라고 부르고, 노드 간의 연결선을 엣지(Edge)라고 합니다. 트리는 부모와 자식 관계로 이루어져 있으며, 루트(Root)라 불리는 최상위 노드에서 시작합니다.트리의 특징루트 노드: 트리에는 시작점이 되는 하나의 루트 노드가 있습니다.부모와 자식 관계: 각 노드는 다른 노드와 부모와 자식 관계로 연결됩니다.사이클 없음: 트리는 순환(사이클)이 없어서, 한 노드에서 출발해 다시 그 노드로 돌아올 수 없습니다.유향(방향 있음): 부모에서 자식으로 가는 방향이 정해져 있습니다.사용 사례파일 시스템: 컴퓨터 파일 시스템에서 폴더와 파일을 계층적으로 구조화할 때 트리를 사용합니다.계층 구조 표현: 조직도나 계층..

스택(Stack)과 큐(Queue)의 개념과 사용 사례

1. 스택(Stack)스택은 데이터를 쌓아 올리는 자료 구조로, 나중에 넣은 데이터가 먼저 나오는 특징이 있습니다. 이를 LIFO(Last In, First Out) 구조라고 부릅니다. 쉽게 말해서, 접시를 쌓듯이 데이터가 쌓이고, 나중에 올려놓은 접시가 가장 먼저 꺼내지는 방식입니다.특징LIFO 구조: 가장 최근에 추가된 데이터가 가장 먼저 삭제됩니다.삽입과 삭제: 데이터의 삽입과 삭제는 맨 위(top)에서만 이루어집니다.사용 사례재귀 함수 호출 저장: 함수가 호출될 때마다 스택에 쌓였다가 종료되면 스택에서 제거되기 때문에 재귀적 함수 호출을 관리하기에 좋습니다.되돌리기 기능: 웹 브라우저의 뒤로 가기 기능처럼, 최근 기록을 스택에 쌓아둬서 뒤로 가기를 누를 때마다 하나씩 꺼낼 수 있습니다.예제 코드i..

배열(Array)와 연결 리스트(Linked List)의 차이점

1. 배열 (Array)배열은 같은 타입의 데이터를 연속된 메모리 공간에 저장하는 자료 구조입니다. 간단히 말해, 일정한 순서로 데이터가 차례대로 놓여있는 형태입니다.특징고정된 크기: 배열의 크기는 선언할 때 미리 지정되며, 이후에는 크기를 변경할 수 없습니다.인덱스를 통한 접근: 배열은 각 요소에 접근할 때 인덱스를 사용합니다. 예를 들어, array[0]은 첫 번째 요소, array[1]은 두 번째 요소에 접근하는 방법입니다.빠른 검색 속도: 배열은 인덱스를 통해 바로 원하는 위치의 요소를 찾을 수 있어서, 검색 속도가 빠릅니다.예제 코드int[] array = new int[5]; // 크기가 5인 정수형 배열을 생성array[0] = 1; // 첫 번째 요소에 1 저장array[1] = 2; //..

320x100
반응형
LIST