본문 바로가기

컴퓨터공학/알고리즘2

Time Complexity (시간복잡도) 시간을 기준으로 알고리즘의 효율성을 분석할 때, CPU에서의 실제 작동시간을 재지 않는다. 왜냐하면 알고리즘을 수행하는 특정 컴퓨터에 따라서 결과가 달라 질 수 있기 때문이다. 컴퓨터, 프로그래밍언어, 프로그래머뿐만 아니라 루프 색인의 증가, 포인터의 세팅 등과 같은 모든 알고리즘 상의 복잡한 세부사항과는 독립적인 측정법이 필요하다. 실행시간은 입력의 크기가 커지면 증가하고, 총 실행시간은 단위연산이 몇 번 수행되는가에 거의 비례하기 때문에 단위연산이 수행되는 횟수를 분석하여 알고리즘의 효율성을 분석한다. 즉, Time Complexity란 입력크기를 기준으로 단위연산을 몇 번 수행하는지 구하는 것이다. 단위연산의 횟수를 세는 데에는 차수가 중요하다. 복잡도 카테고리는 여러가지, 셀 수 없을 만큼 많지만.. 2018. 12. 24.
[Intro] 알고리즘 목차 전자기기가 많이 보급되면서 동시에 SW도 많이 보급되고 있다. 우리 삶에 있어서 SW를 빼놓으면 정말 불편할 것이다. 우리가 사용하는 SW는 바로바로 우리가 원하는 답을 가져다 준다. 만약에 우리가 사용하는 프로그램이 바로 답을 주지 않고 몇분, 몇시간을 기다려야한다면 과연 사람들이 사용할 것인가? 당연 사용하지 않을 것이다. 그래서 우리는 더 빠르고 효율적인 프로그램을 만들어야하고 이때 좋은 알고리즘이 필요하다. 알고리즘 카테고리에서는 알고리즘을 만드는 기법들에 대해서 포스팅할 예정이다. 우리는 알고리즘을 만드는 기법, 문제에 대한 접근 방법만 알고 있다면 복잡한 문제도 풀 수 있을 것이다. 알고리즘이란 무엇인가? 우리가 구하고자 하는 과제들을 문제(Problem)이라고 한다. 문제란 해답(soluti.. 2018. 12. 24.