프로그램 코드 이야기

고정 헤더 영역

글 제목

메뉴 레이어

프로그램 코드 이야기

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 N
    • 언어
      • Java
      • Spring Frame Work
      • Spring Boot
    • nginx
    • linux
    • tool download
    • 개발자를위한다양한이야기
    • 알고리즘 N

검색 레이어

프로그램 코드 이야기

검색 영역

컨텐츠 검색

알고리즘

  • 이진 탐색(Binary Search)

    2025.06.15 by codeon

  • 선형 탐색(Linear Search)

    2025.06.15 by codeon

  • 병합 정렬(Merge Sort)

    2025.06.15 by codeon

  • 퀵 정렬(Quick Sort)

    2025.06.15 by codeon

  • 버블 정렬(Bubble Sort)

    2025.06.15 by codeon

  • 알고리즘이란 무엇인가요?

    2025.06.15 by codeon

이진 탐색(Binary Search)

🔍 이진 탐색(Binary Search) 알고리즘이란?이진 탐색은 정렬된 데이터에서 원하는 값을 빠르게 찾는 알고리즘입니다. 중간 값을 기준으로 검색 범위를 절반씩 줄여가며 탐색하는 방식입니다.쉽게 말하면, 전화번호부에서 이름의 첫 글자를 기준으로 책을 반으로 접으며 찾는 방식이에요. ✅ 전제 조건데이터가 반드시 정렬되어 있어야 함오름차순 또는 내림차순 정렬된 상태에서만 사용 가능✅ 작동 방식예를 들어, 오름차순으로 정렬된 배열 [10, 20, 30, 40, 50, 60, 70] 에서 숫자 50을 찾는 경우:중간 값: 40 → 찾는 값보다 작으므로 오른쪽 절반 [50, 60, 70]으로 탐색 범위 좁힘중간 값: 60 → 찾는 값보다 크므로 왼쪽 절반 [50]으로 좁힘값 50 발견!👉 이런 식으로 반복..

알고리즘 2025. 6. 15. 11:59

선형 탐색(Linear Search)

🔍 선형 탐색(Linear Search) 알고리즘이란?**선형 탐색(또는 순차 탐색)**은 가장 기본적이고 간단한 탐색 알고리즘입니다. 데이터를 처음부터 끝까지 하나씩 차례대로 확인하면서 **찾고자 하는 값(키 값)**을 찾는 방식입니다. ✅ 작동 방식배열이나 리스트의 첫 번째 요소부터 시작합니다.각 요소를 하나씩 검사하여, 찾고자 하는 값인지 확인합니다.찾으면 즉시 반환하고, 끝까지 없으면 “찾을 수 없음”을 반환합니다.🔄 동작 예시배열: [10, 25, 37, 40, 52]찾고자 하는 값: 3710 → 아니고25 → 아니고37 → 찾음! → 인덱스 2 반환📊 시간 복잡도상황시간 복잡도최선 (첫 번째 원소가 정답)O(1)평균O(n)최악 (마지막 원소 또는 없음)O(n) ※ n은 배열의 크기입니다...

알고리즘 2025. 6. 15. 11:50

병합 정렬(Merge Sort)

🔷 병합 정렬(Merge Sort)란?병합 정렬은 분할 정복(Divide and Conquer) 알고리즘을 기반으로 하는 정렬 방식으로, 데이터를 작게 나누고 다시 정렬하며 합치는 방식으로 동작합니다. 데이터의 크기와 무관하게 항상 안정적이고 예측 가능한 성능을 보장하기 때문에 많은 환경에서 사용됩니다. ✅ 작동 원리 (어떻게 작동하나요?)배열을 반으로 나눕니다.나눈 배열 각각을 다시 반으로 나눕니다.배열이 더 이상 쪼갤 수 없을 때까지(길이 1일 때까지) 반복합니다.이후 작은 배열들을 정렬된 상태로 병합합니다.모든 배열이 병합되면 최종적으로 정렬된 하나의 배열이 됩니다.👉 쉽게 말해, 쪼개고, 쪼개고, 나중에 정렬하면서 합치는 것!✅ 시간 및 공간 복잡도구분복잡도최선O(n log n)평균O(n lo..

알고리즘 2025. 6. 15. 11:35

퀵 정렬(Quick Sort)

🔷 퀵 정렬(Quick Sort)란?퀵 정렬은 "분할 정복(Divide and Conquer)" 전략을 기반으로 한 고성능 정렬 알고리즘입니다. 가장 널리 사용되는 정렬 알고리즘 중 하나로, 평균적으로 매우 빠른 속도를 보여줍니다. ✅ 작동 원리퀵 정렬의 핵심은 **피벗(Pivot)**이라는 기준 값을 중심으로 배열을 두 부분으로 나누는 것입니다:피벗을 하나 선택합니다. (일반적으로 첫 요소, 마지막 요소, 혹은 중간값 등)배열을 피벗보다 작은 값과 큰 값으로 분할합니다.피벗을 기준으로 왼쪽과 오른쪽 서브 배열에 대해 퀵 정렬을 재귀적으로 반복합니다.모든 하위 배열이 정렬되면 전체 배열이 정렬됩니다.✅ 시간 복잡도평균: O(n log n)최악 (피벗이 계속 가장 큰 값이나 가장 작은 값으로 선택될 경우..

알고리즘 2025. 6. 15. 10:53

버블 정렬(Bubble Sort)

🔷 버블 정렬(Bubble Sort)란?버블 정렬은 가장 단순한 정렬 알고리즘 중 하나로, 인접한 두 요소를 비교해서 크기가 잘못된 경우 서로 교환하는 방식으로 동작합니다. 이러한 과정을 반복하면서 가장 큰(또는 작은) 요소가 끝으로 "버블처럼" 올라가는 모습을 보입니다.✅ 작동 방식배열의 첫 번째 요소부터 인접한 두 요소를 비교합니다.앞의 값이 뒤의 값보다 크면, 두 값을 서로 교환합니다.이 과정을 배열의 끝까지 반복합니다.첫 번째 반복이 끝나면 가장 큰 값이 마지막에 위치하게 됩니다.다음 반복에서는 마지막 요소를 제외하고 같은 과정을 반복합니다.배열이 정렬될 때까지 이 과정을 반복합니다.✅ 시간 복잡도최악(O): O(n²)평균: O(n²)최선(정렬된 경우): O(n) (최적화된 버블 정렬 사용 시..

알고리즘 2025. 6. 15. 10:46

알고리즘이란 무엇인가요?

알고리즘이란 무엇인가요?정의 및 개념알고리즘은 주어진 문제를 해결하기 위한 절차적 방법이나 명확한 순서의 집합이에요. 마치 요리를 할 때 레시피를 따라가듯, 컴퓨터가 문제를 해결하도록 안내하는 '지침서'라고 생각하면 쉬워요.알고리즘의 중요성효율적인 알고리즘은 프로그램의 성능을 결정짓는 핵심 요소예요. 동일한 기능을 수행하는 프로그램이라도 알고리즘에 따라 속도, 메모리 사용량, 처리 능력이 천차만별이죠.분류 기준에 따른 알고리즘의 종류시간 복잡도 기준시간 복잡도는 알고리즘이 문제를 해결하는 데 걸리는 시간의 척도예요. 일반적으로는 빅오(Big-O) 표기법을 사용해 O(n), O(log n), O(n^2) 등으로 표시하죠.공간 복잡도 기준알고리즘이 사용하는 메모리 양이에요. 메모리를 아껴야 하는 환경에서는 ..

알고리즘 2025. 6. 15. 10:36

추가 정보

반응형

인기글

최신글

페이징

이전
1
다음
TISTORY
프로그램 코드 이야기 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바