0x.알고리즘
-
0x01.알고리즘(2):배열&연결 리스트0x.알고리즘 2017. 2. 19. 23:59
1. 배열(Array) 데이터를 하나의 순서로 나열한 것을 선형 리스트(linear list) 또는 열(sequence)라고 하는데, 주로 배열과 연결 리스트를 사용한다. 그 중에 배열은 메모리에 연속으로 데이터를 나열할 때 주로 사용하는데, 직접 접근에 용이하여 각 요소를 참조하는데 시간이 적게 걸린다는 장점이 있다. int element[size]; 하지만 연속된 특징 때문에 특정 열에 새로운 요소를 삽입할 경우, 그 장소를 비우기 위해 요소를 이동시켜야 되는 불편함이 있다. 장소 : p, 데이터 : val void insert(int p, int val){ int i; for(i=length; i>=p; inext; } 아까 언급하였지만, 연결 리스트의 핵심은 쉬운 데이터 삽입과 삭제이다. 다음의 ..
-
0x00.알고리즘0x.알고리즘 2017. 2. 18. 22:48
알고리즘 알고리즘이란 어떤 문제를 해결하기 위한 절차를 기술해 놓은 것이다. (여기서의 절차는 어떤 작동을 어떤 순서로 할 것인가를 나열한 것을 말함) 알고리즘의 특성으로는 다음과 같이 4가지가 있는데, 모두 충족을 시켜야 한다! 1. 엄밀성(Preciseness) 기술된 내용은 한 가지 이상의 의미를 포함하지 않음 2. 실효성(Effectiveness) 주어진 상황에 영향을 주어서 실제로 상황을 변화시키는 효과가 있어야 함 3. 입출력(Input/Output) 입력이 주어지고, 그에 따른 출력이 있어야 함 4. 종료성(Termination) 기술된 절차는 반드시 종료상태에 도달해야 함 알고리즘의 간단한 예로 유클리드 호제법을 들어보자. (쉽게 말해서 두 수의 최대공약수를 구하는 공식임.. 느낌오시죠?)..