Skip to content

Latest commit

 

History

History
38 lines (30 loc) · 2.17 KB

Algorithm.md

File metadata and controls

38 lines (30 loc) · 2.17 KB

알고리즘이란?

알고리즘이란 무엇일까?
알고리즘에 대해서 딱히 생각해본 적이 없었다.
그냥 알고리즘 알고리즘 알고리즘.. 몰라 뭔가 문제를 푸는거? 방법?
건국대학교 남원홍 교수님께서도 대학원까지 알 생각을 안하셨다고 하니 우리는 좀 더 빨리 알아보자

Algorithm

알고리즘은 아부 압둘라 무함마드 이븐 무사 알콰리즈가 대수학을 해서 이름이 어쩌구...는 흥미 있는 분은 보시기 바람.
알고리즘의 유래

알고리즘은 문제를 푸는 방법을 단계별로 제시한 것

라면을 끓인다고 생각해보자.

  1. 냄비를 준비한다.
  2. 물이 들어있는가?
  3. 있다면 냄비에 넣는다.
  4. 없다면 물을 얻을 것인가?
    1. 밖에서 사온다.
    2. 안먹는다.
  5. 물이 들어있는 냄비를 올리고 불을 킨다.
    라면을 끓이는 방법을 모르는 사람은 없다.
    그런데 누구는 물부터 사오고, 누구는 물이 이미 있다.
    사람마다 방법이 다를 뿐, 그렇다면 그 방법을 어떻게 제시할 것인가?

한가지 문제에 따른 여러가지 방법의 제시가 알고리즘이고, 알고리즘 분석을 통해 가장 효율적인 방법을 찾는 것.
그것이 알고리즘과 알고리즘의 분석이다.

알고리즘 분석의 목적?

기준(관점)에 따라 알고리즘의 목적은 다르다.
어떤 기준에 따라서 알고리즘을 비교할 것인가?

  • 시간에 따른 분석
    동일한 문제를 푸는 알고리즘 A와 B가 있다면 A는 100초, B는 200초가 걸린다.
    어떤게 더 효율적인 알고리즘인가를 묻는다면 대부분 A라고 답하겠지만, 절대적인 시간은 평가 순위가 낮다.
    사실 절대적인 시간이 아닌 입력의 크기가 증가함에 따른 처리 시간의 증가 즉 시간복잡도의 증가를 판단한다.
    A는 100개의 데이터를 100초에 처리하고, B는 1000개의 데이터를 200초에 처리한다면, 여전히 알고리즘 A가 효율적이라고는 못할 것이다.