Algorithm & Data Structure/Sort
-
Heap Sort(힙 정렬)Algorithm & Data Structure/Sort 2024. 4. 17. 23:25
힙정렬에 대해서 힙 정렬은 완전 이진 트리인 힙을 이용한 선택 정렬의 일종입니다. 배열 요소들을 힙 구조로 재배열한 다음, 가장 큰 요소(또는 가장 작은 요소)를 배열의 끝부분으로 이동시키는 과정을 반복하여 전체 배열을 정렬합니다. 현업에서는 어디에서 쓰일 수 있나? 힙 정렬은 데이터 스트림의 지속적인 입력과 동시에 최대값 또는 최소값을 빠르게 액세스해야 할 때 유용합니다. 따라서 실시간 처리 시스템, 운영 체제의 작업 스케줄링, 대용량 데이터의 배치 처리 등에 적합합니다. 힙 정렬 사이클 힙 정렬의 주요 사이클은 다음과 같이 진행됩니다: 힙 구성: 입력 배열을 최대 힙(max-heap) 또는 최소 힙(min-heap) 구조로 변환합니다. 요소 추출 및 재구성: 힙의 루트(최대값 또는 최소값)를 힙의 마..
-
Counting Sort(계수 정렬)Algorithm & Data Structure/Sort 2024. 4. 16. 22:30
카운팅 정렬(Counting Sort)은 특정 조건에서 매우 효율적인 정렬 방식을 제공하는 비교 기반 정렬이 아닌 알고리즘입니다. 그 특징과 구현에 대해 자세히 설명하겠습니다. Counting Sort란? 카운팅 정렬은 입력 배열에서 각 요소의 등장 횟수를 세고, 그 카운트를 기반으로 배열을 정렬하는 알고리즘입니다. 이 방법은 특히 배열의 원소가 특정 범위 내의 정수일 때 매우 효과적입니다. 이 정렬은 추가적인 메모리 공간을 사용해 입력 원소의 빈도 수를 카운팅하며, 이 정보를 이용하여 출력 배열을 직접 생성합니다. Counting Sort 사이클 설명 카운팅 정렬의 주요 사이클은 다음과 같은 단계로 이루어집니다: 카운팅 배열 초기화: 입력 배열의 각 요소 값에 대응하는 인덱스를 가진 카운팅 배열을 초기..
-
Insertion Sort(삽입 정렬)Algorithm & Data Structure/Sort 2024. 3. 30. 00:18
Insertion sort 란? 삽입 정렬은 정렬되지 않은 리스트를 순차적으로 이미 정렬된 배열의 적절한 위치에 삽입하여 정렬을 완성하는 방식입니다. 이 알고리즘은 부분적으로 정렬된 배열을 유지하며, 각 반복에서 하나의 원소를 정렬된 배열 부분으로 이동시킵니다. Insertion sort 사이클 설명 삽입 정렬의 한 사이클은 다음과 같이 진행됩니다: 배열의 두 번째 요소를 선택합니다(첫 번째 요소는 이미 정렬된 상태로 간주). 선택된 요소를 그 이전의 요소들과 비교하여 적절한 위치를 찾습니다. 선택된 요소가 이전 요소보다 크면 그 위치에 삽입됩니다. 배열의 모든 요소가 이 과정을 거쳐 정렬될 때까지 반복합니다. 이 사이클은 배열의 각 요소가 올바른 위치에 있을 때까지 계속됩니다. Insertion sor..
-
Selection Sort(선택 정렬)Algorithm & Data Structure/Sort 2024. 3. 29. 23:59
Selection sort 란? 선택 정렬(Selection Sort)은 배열 내의 최소값(또는 최대값)을 찾아서 맨 앞(또는 맨 뒤)에 위치한 값과 교환하는 방식으로 정렬을 수행하는 알고리즘입니다. 이 과정을 배열 전체에 대해 반복함으로써 전체 배열을 오름차순 또는 내림차순으로 정렬합니다. 선택 정렬은 이해하기 쉽고 구현하기 간단한 알고리즘 중 하나로, 작은 데이터 세트에 적합합니다. Selection sort 사이클 선택 정렬의 한 사이클은 전체 배열에서 현재 선택된 위치를 기준으로 최소값을 찾는 과정을 포함합니다. 첫 번째 사이클에서는 전체 배열을 검사하여 최소값을 찾고, 이 값을 배열의 첫 번째 위치와 교환합니다. 두 번째 사이클에서는 첫 번째 원소를 제외한 나머지 배열에 대해 동일한 과정을 수행..
-
Bubble Sort(거품 정렬, 버블 소트)Algorithm & Data Structure/Sort 2024. 3. 29. 20:21
Bubble sort 란? 버블 소트(Bubble Sort)는 가장 간단하면서도 직관적인 정렬 알고리즘 중 하나입니다. 이 알고리즘은 인접한 두 원소를 비교하여 잘못된 순서(예: 오름차순 정렬에서 더 큰 수가 왼쪽에 위치하는 경우)가 발견될 때마다 이를 교환합니다. 이 과정을 모든 원소가 올바른 순서로 정렬될 때까지 반복합니다. 이 알고리즘의 이름은 더 큰 원소들이 마치 '거품'처럼 배열의 끝으로 '떠오르는' 모습에서 유래했습니다. Bubble sort 사이클 버블 소트의 한 사이클은 배열의 첫 번째 원소부터 시작해 마지막 원소까지 진행됩니다. 각 단계에서, 현재 원소와 그 다음 원소를 비교하여 현재 원소가 다음 원소보다 크면 두 원소의 위치를 바꿉니다. 이 과정은 배열의 끝에 도달할 때까지 반복되며, ..