cs지식/알고리즘

알고리즘이란?

Uno_says 2024. 7. 27. 15:24
728x90

✔️ 알고리즘이란?

알고리즘은 문제를 해결하기 위한 명확한 절차나 단계의 집합을 의미한다. 컴퓨터 과학에서 알고리즘은 주로 프로그래밍과 데이터 처리에 사용되며, 특정 작업을 수행하기 위한 명령어의 집합을 체계적으로 정리한 것이다. 알고리즘은 다양한 형태로 존재하며, 그 특성과 목적에 따라 분류된다. 

 

 

✔️ 알고리즘의 주요 특성

  • 명확성(Clarity): 알고리즘의 각 단계는 명확하고 모호하지 않아야 한다.
  • 유한성(Finiteness): 알고리즘은 유한한 단계를 거쳐 종료되어야 한다.
  • 입력(Input): 알고리즘은 0개 이상의 입력을 받아들인다.
  • 출력(Output): 알고리즘은 1개 이상의 출력을 생성한다.
  • 유효성(Effectiveness): 알고리즘의 각 단계는 실질적으로 수행 가능한 연산이어야 한다.

 

✔️ 알고리즘의 유형

  1. 정렬 알고리즘(Sorting Alogorithms):
    • 버블 정렬(Bubble Sort): 인접한 두 요소를 비교하여 정렬하는 단순한 정렬 알고리즘이다.
    • 퀵 정렬(Quick Sort): 분할 정복 기법을 사용하여 배열을 분할하고 정렬한다.
    • 병합 정렬(Merge Sort): 분할 정복 기법을 사용하여 배열을 분할한 후 병합하여 정렬한다.
  2. 검색 알고리즘(Searching Algorithms):
    • 이진 검색(Binary Search): 정렬된 배열에서 중간 값을 기준으로 검색 범위를 반씩 줄여가며 검색한다.
    • 선형 검색(Linear Search): 배열의 처음부터 끝까지 순차적으로 검색한다.
  3. 그래프 알고리즘(Graph Algorithms):
    • 다익스트라 알고리즘(Dijkstra's Algorithm): 그래프에서 최단 경로를 찾는 알고리즘이다.
    • 프림 알고리즘(Prim's Algorithm): 최소 신장 트리를 찾는 알고리즘이다.
    • 크루스칼 알고리즘(Kruskal's Algorithm): 최소 신장 트리를 찾는 또 다른 알고리즘이다.
  4.  동적 프로그래밍(Dynamic Programming)
    • 피보나치 수열(Fibonacci Sequence): 이전에 계산된 값을 저장하여 동일한 계산을 반복하지 않도록 하는 기법이다.
    • 배낭 문제(Knapsack Problem): 제한된 무게 내에서 최대 가치를 얻는 물건을 선택하는 문제를 해결한다.
728x90