github.com/taemin-kwon93 Github 보러가기 ->

2024/08/02 2

해시 테이블

해시 테이블(Hash Table) 또는 해시맵(Hash Map)은 키를 값에 매핑할 수 있는 구조이다.해시 테이블은 대부분의 연산이 분할 상환 분석에 따라 시간 복잡도가 O(1)이라는 점이다. 즉, 데이터의 양과 상관 없이 빠른 성능을 기대할 수 있다. 해싱은 정보를 가능한 한 빠르게 저장하고 검색하기 위해 사용하는 중요 기법 중 하나다.  해시 테이블의 핵심은 해시 함수다. 해시 함수란 임의 크기 데이터를 고정 크기 값으로 매핑하는데 사용할 수 있는 함수를 말한다.해시 함수는 다음과 같은 특징이 있다. 고정된 출력 크기: 입력 데이터의 크기와 상관없이 항상 고정된 크기의 해시 값을 출력한다.신속한 계산: 해시 값 계산이 빠르게 이루어진다.결정론적: 동일한 입력에 대해 항상 동일한 해시 값을 반환한다.충..

Quick Sort 구현

quick sort: 정렬 속도가 아주 빠르다는 데서 착안해 붙여진 직관적인 이름이다.퀵정렬은 각 그룹에 대해 피벗 설정과 그룹 나눔을 반복하여 모든 그룹이 1개의 요소가 될때까지 반복한다.그룹을 나누는 기준을 피벗(pivot) 이라고 한다. 배열을 두 그룹으로 나누기 피벗 이하의 요소를 배열 왼쪽으로, 피벗 이상의 요소를 배열 오른쪽으로 옮겨야 한다. 아래 배열을 통해 과정을 살펴보자.int[] arr = [5, 7, 1, 4, 6, 2, 3, 9, 8]// pl x pr가운데 인덱스를 피벗 x, 왼쪽 끝 요소를 pl, 오른쪽 끝 요소를 pr 이라 했을 때1. arr[pl] >= x 가 성립하는 요소를 찾을 때까지 pl을 오른쪽으로 스캔한다. (pl+..