Lower Bound & Upper Bound 이진 탐색 알고리즘은 정렬된 배열에서 특정 값을 빠르게 찾는 데 사용된다. 이진 탐색의 개념을 확장하여, Lower Bound와 Upper Bound를 이용하면 정렬된 배열에서 특정 값의 위치를 보다 정밀하게 찾을 수 있다. Lower BoundLower Bound는 배열에서 주어진 값 이상인 첫 번째 위치를 찾는 알고리즘이다, 즉, 주어진 값이 처음으로 나타나는 인덱스를 반환하는 알고리즘이다. 동작 방식초기화:low를 0으로 초기화한다.high를 배열의 길이로 초기화한다.이진 탐색:low 반복 중 mid를 (low + high) / 2로 계산한다.배열의 중간 값 arr[mid]와 target을 비교한다.arr[mid] >= target: 배열의 mid 위치..
선택 정렬이란?선택 정렬이란 정렬 알고리즘 중 하나로, 배열을 정렬하는 간단한 알고리즘이다.선택 정렬 알고리즘은 가장 작은 원소를 찾아서 배열의 맨 앞에 놓고, 다음으로 작은 원소를 찾아서 두 번째 위치에 놓는 방식으로 정렬을 진행하며 이 과정을 배열 끝까지 반복하여 정렬된 배열을 생성한다.선택 정렬의 동작 방식동작 과정 : 기준 원소 선택: 현재 위치의 원소를 기준으로 삼는다.가장 작은 원소 찾기: 기준 원소 이후의 배열에서 가장 작은 원소를 찾는다.교환: 찾은 가장 작은 원소를 현재 위치에 배치합니다.반복: 배열의 모든 위치에 대해 위 과정을 반복합니다. 동작 과정 설명: 1. 현재 위치의 원소를 기준으로 삼는다. 2. 기준 원소 이후의 배열에서 가장 작은 원소를 찾는다. 3. 찾은 가장 작은 원소를..
서론카운팅 정렬(Counting Sort)은 정수 기반의 데이터를 정렬하기 위해 설계된 효율적인 정렬 알고리즘이다.이 알고리즘은 각 원소의 등장 횟수를 계산하여 정렬을 수행하며, 특정 조건에서 매우 빠르게 동작할 수 있다.이 글에서 카운팅 정렬의 개념과 동작 방식, 장점 및 단점을 정리하고자 한다.카운팅 정렬이란카운팅 정렬은 입력 데이터의 범위가 상대적으로 좁을 때 효과적인 정렬 알고리즘이다. 이 알고리즘은 각 원소가 등장하는 횟수를 기록하고, 이 빈도 정보를 바탕으로 정렬된 결과를 빠르게 생성한다. 카운팅 정렬의 주요 아이디어는 데이터를 직접 정렬하는 대신, 각 값의 출현 빈도를 계산하여 원래 배열의 정렬을 수행하는 것이다.카운팅 정렬 동작 과정 카운팅 정렬은 다음과 같은 단계로 이루어진다.최댓값 찾기..
서론이진 탐색(Binary Search) 은 정렬된 배열에서 특정 값을 효율적으로 찾기 위한 알고리즘이다.이 알고리즘은 탐색 범위를 절반으로 줄여 나가면서 목표 값을 찾기 때문에 매우 빠르고 효율적으로 값을 찾을 수 있다.이 글에서는 이진 탐색의 개념과 구현 방법, 그리고 시간 복잡도를 다뤄보려고 한다.이진 탐색이란?이진 탐색은 정렬된 배열에서 원하는 값을 찾기 위해 사용되는 알고리즘이다.탐색 범위를 절반으로 줄여나가며 목표 값을 찾기 때문에, 탐색 속도가 매우 빠르다.하지만 이진 탐색을 사용하려면 배열이 정렬되어 있어야 한다는 점이 중요하다. 이진 탐색 동작 과정 이진 탐색은 다음과 같은 단계로 진행된다:중간값 계산:배열의 중간값을 계산하여 현재 탐색 범위의 중간 인덱스를 구한다.목표 값 비교:중간값..