웹 서비스 개발(FB,BE,SERVER,DB)/Algorithm6 6. 해시 테이블(Hash Table) 1. 해시 테이블(Hash Table) 데이터 관리 및 검색을 효율적으로 수행하기 위해 사용되는 기술이다. 해시는 주로 해시 테이블이라는 데이터 구조와 결합하여 사용된다. 1-1. 해시 함수 임의의 길이를 가진 데이터(키)를 고정된 데이터로 매핑한다. 매핑된 값은 해시 값 또는 해시 코드라 부르며, 해시 테이블 내에서 해당 데이터의 위치(인덱스)를 결정하는 데 사용된다. 1-1-1. 해시 테이블 작동 원리 1. 데이터 저장 : 키를 해시 함수에 입력하여 해시 값을 계산한다. 해시 값은 해시 테이블 내의 인덱스로 사용되어 해당 인덱스에 값이 저장된다. 2. 데이터 검색 : 검색하려는 키를 해시 함수에 입력하여 해시 값을 계산한다. 이 값은 해시 테이블에서 해당 데이터가 저장된 위치를 가리키므로 효율적인 검.. 웹 서비스 개발(FB,BE,SERVER,DB)/Algorithm 2024. 1. 15. 5. 큐(Queue) 1. 큐(Queue) 1-1. 큐(queue) - 정의 및 사용 * 큐는 일상생활에서 줄을 서 기다리는 것과 유사한 자료 구조이다. - 작동 방식(선입선출, FIFO) * 큐는 선입선출 ( First In First Out) 구조를 가진다. * 먼저 들어간 데이터가 먼저 나오는 순서로 작동한다. - 주요 용어 * Front : 큐의 앞쪽 끝을 가리킨다. 데이터를 꺼내는(dequeue) 위치이다. * Rear/Back : 큐의 뒤쪽 끝을 나타낸다. 데이터를 넣는(enqueue) 위치이다. - 기본 연산 * Enqueue : 큐의 뒤쪽(rear)에 데이터를 추가한다. * Dequeue : 큐의 앞쪽(front)에서 데이터를 꺼낸다. 1-2. 스택(Stack)과의 비교 - 스택은 후입선출(Last In Fir.. 웹 서비스 개발(FB,BE,SERVER,DB)/Algorithm 2024. 1. 15. 4. 스택(stack) 1. 스택 자료 구조 스택은 후입선출(Last In First Out, LIFO) 방식을 따르는 자료구조이다. 마지막에 들어온 요소가 가장 먼저 나가는 특징을 가진다. 1-1. 스택의 구조 * 구조 - 후입선출(Last In First Out) 방식을 따르는 선형 구조이다. - 데이터는 한쪽 끝에서만 추가되거나 제거된다. * 접근 방식 - 오직 스택의 맨 위(Top)에서만 데이터에 접근이 가능하다. - 삽입(push)와 삭제(pop) 작업은 스택의 top에서만 이루어진다. * 용도 - 재귀 알고리즘, 함수 호출, 역순 문자열 생성, 후위 표현식 계산 등에 사용된다. - 데이터의 순서를 일시적을 뒤집거나, 가장 최근의 요소에 빠르게 접근할 필요가 있을 때 유용하다. * 구현 - 배열이나 연결 리스트를 사용.. 웹 서비스 개발(FB,BE,SERVER,DB)/Algorithm 2024. 1. 15. 3. 연결 리스트(Linked List) 1. 연결 리스트 구조와 특징 동적인 선형 자료 구조로서, 데이터 요소들이 노드(Node)라는 단위로 저장되고 서로 연결되어 있다. 1-1. 연결 리스트의 구조 - 노드(Node) : * 각 노드는 두 부분으로 구성되는데 하나는 데이터를 저장하는 부분(data), 다른 하나는 다음 노드를 가리키는 부분(next) * 마지막 노드의 next는 None을 가리켜 연결리스트의 끝을 나타낸다. - Head: * 연결 리스트의 첫 번째 노드를 가리키는 참조이다. * 리스트에 접근하거나 순회할 때 시작점으로 사용된다. 1-2. 연결 리스트의 특징 1. 동적크기(Dynamic Size): * 연결 리스트는 미리 크기를 정할 필요 없이, 필요에 따라 동적으로 크기가 조정된다. 2. 비연속 메모리 할당(Non-Conti.. 웹 서비스 개발(FB,BE,SERVER,DB)/Algorithm 2024. 1. 15. 2. 배열(Array)과 리스트(List) 1. 파이썬의 리스트와 배열 1-1. 파이썬에서의 배열과 리스트 - 파이썬의 리스트 : 파이썬에서는 배열의 개념을 리스트로 대신한다. 리스트는 동적 배열로 연속된 메모리에 객체의 주소를 지정한다. - 배열의 정의 * 배열이란 : 동일한 종류의 데이터를 순서대로 저장하는 구조이다. 배열의 각 데이터는 메모리상에서 서로 연속적으로 위치한다. * 동일한 자료형 : 배열에 저장되는 각 데이터(또는 '원소')는 같은 크기와 자료형을 가진다. * 연속된 메모리 공간 : 배열의 원소들은 메모리 상에서 서로 바로 옆에 위치한다. 데이터를 빠르게 읽고 쓸 수 있게 해준다. 1-2. 배열 특징 - 인덱스 접근 : 배열은 인덱스를 통해 임의의 원소에 빠르게 접근할 수 있다. - 원소 추가/삭제의 비효율성 : 배열에서 원소를.. 웹 서비스 개발(FB,BE,SERVER,DB)/Algorithm 2024. 1. 14. 1. 자료구조와 알고리즘 1. 자료 구조(Data Structure) 데이터를 효율적으로 관리하고 조작하는 데 필수적인 컴퓨터 과학의 핵심 개념이다. 1-1. 자료 구조의 중요성과 기능 - 목적 : 효과적인 데이터 저장, 관리 및 접근을 가능하게 한다. - 기능 : 데이터 삽입, 수정, 삭제, 검색 등 다양한 연산을 수행한다. 1-2. 자료 구조의 주요 연산 - 삽입(Insertion) : 새로운 데이터를 구조에 추가 - 수정(Modificaion) : 기존 데이터의 갱신 또는 변경 - 삭제(Deletion) : 특정 데이터 제거 - 검색(Search) : 특정 데이터의 위치 또는 존재 여부 확인 - 정렬(Sorting) : 데이터를 특정 기준에 따라 재배열 - 병합(Merging) : 두 개 이상의 데이터 집합을 하나로 합침 .. 웹 서비스 개발(FB,BE,SERVER,DB)/Algorithm 2024. 1. 14. 이전 1 다음 728x90