알고리즘

1.  Introduction- 알고리즘을 분석하는 것은 알고리즘이 요구하는 자원을 예측하는 것을 의미- 여기서 말하는 자원은 메모리와 시간을 의미함- 문제에 대한 여러 후보 알고리즘을 분석하면 가장 효율적인 것을 선택할 수 있게 된다.- 사용가능한 Candidate가 하나 이상 있을 수 있지만, 분석하는 과정에서 쓸모없는 알고리즘을 소거할 수 있다. 2. RAM(Random-Access Machine)- 사용자가 자유롭게 내용을 읽고 쓰고 지울 수 있는 기억장치- 컴퓨터가 켜지는 순간부터 CPU는 연산을 하고 동작에 필요한 모든 내용이 전원이 유지되는 내내 이 RAM에 저장된다.- RAM은 명령어들이 하나씩 순차적으로 실행되며, 동시에 두작업 이상을 할 수 없다라고 가정한다.  3. Analysis o..
1. Introduction- 앞서 1-1 에 설명했던 Sorting Problem을 풀기위해 삽입 정렬(Insertion Sort)를 알아보자. 2. Insertion Sort- 적은 수의 요소를 정렬하는 데 효율적인 알고리즘- 카드를 한손에 들고 정렬하는 방식과 유사- 각 숫자를 적절한 위치에 삽입하는 방법을 의미함- 파이썬으로 해당 알고리즘을 구현한 걸 함께 살펴보자.(parameter는 2개 / 배열, 배열길이)def insertion_sort(A,n): for i in range(1,n): key = A[i] j = i-1 while j >=0 and A[j] > key: A[j+1] = A[j] j -=1 ..
1. Introduction- 컴퓨터가 무한히 빠르고 메모리 비용이 들지 않는다고 가정하자.- 컴퓨터가 무한히 빠르면 어떤 문제를 해결하는 알고리즘들은 전부 무한히 빠를 것이다.- 따라서, 어떤 기법이든 가장 쉽게 구현할 수 있는 것을 자주 사용하게 된다.- 하지만 컴퓨터는 엄청 빠를 순 있지만, 무한히 빠를 수 없다. 마찬가지로, 메모리도 매우 저렴하 순 있지만, 비용이 전혀 들지 않을 수 없다. - 결국 우리는 가장 효율적인 알고리즘과 자료구조를 찾아야만 한다.  2. 효율성- 동일한 문제를 해결하기 위한 알고리즘이 효율성 면에서 극적으로 다를 수 있다.- 잘 설계된 알고리즘은 효율성이 낮은 알고리즘보다 계산/시간적인 차원에서 문제의 크기가 커질수록 그 상대적인 장점도 커진다 - 알고리즘에 대한 지식..
1. Introduction-  알고리즘(Algorithm)은 INPUT -> OUTPUT 하는 일련의 계산과정- 잘 정의된 계산 문제를 풀기 위한 도구로 볼 수 있음 - INPUT이 다음과 같이 주어져 있다면, 정렬을 거치고 나선 OUTPUT은 정렬된 숫자들의 집합으로 나옴- 실제로 많은 프로그램에선 정렬은 CS에서 가장 중요한 작업임 2. 알고리즘의 특징- 실제로 현실세계에서도 매우 중요한 역할을 하게된다.ex) GPS를 이용해 최단거리찾기.. 3. 자료구조- 해당 책에선 여러 자료구조를 다룸- 자료구조는 자료를 편리하게 접근하고 변경하기 위해 자료를 저장하거나 조직하는 방법을 의미
23학번이수현
'알고리즘' 태그의 글 목록 (11 Page)