본문 바로가기

반응형

알고리즘

(4)
재귀 알고리즘의 기본.. 오늘으 재귀를 알아보자.. 오늘은 진지하게... 도와줘요 스피드웨건..! 재귀 알아보기 어떠한 이벤트를 자기 자신을 포함하고 다시 자기 자신을 사용하여 정의되는 경우를 재귀(recursion)이라고 한다 어려운말인데 쉽게 말해서 자기 자신을 계속 호출한다고 보면 된다 가장 대표적인 예가 피보나치의 수열 또다른건 화면 가운데에 계속해서 자기 화면서 반복해서 나타나는거라고 보면 된다 . 이렇게 자원이 된다면 무한하게 이어지는 자연수(1, 2, 3, 4,5, ---- etc) 처럼 이것을 다음과 같이 정의할 수 있다.. 자연수의 정의 1. 1은 자연수이다 2. 어떤 자연수의 바로 다음 수도 자연수 이다. 무안히 존재하는 자연수를 재귀적 정의(recusive definition)를 사용하여 위의 두 문장으로 정..
큐 (queue) 오늘은 큐를 알아보자.. 더이상 쓸 짤이 없다... 는 훼이크 도와줘요 스피드웨건..! 큐 알아보기 큐는 가장먼저 넣은 데이터를 가장 먼저 꺼내는 선입선출 FIFO 이다. FIFO (Frist in Frist out) : 가장먼저 넣은 데이터는 가장 먼저 꺼낸다 . 용어를 알아보자. 큐에 데이터를 추가하는작업을 : 인큐 (enqueue) 데이터를 꺼내는 작업을 : 디큐 (dequeue) 데이터를 꺼내는 쪽을 : 프론트(front) 데이터를 넣는 쪽을 : 리어(rear) 링 버퍼로 큐 구현하기 이번에는 디큐할 때 배열 안의 원소를 옮기지 않는 큐를 구현해보겠다. 이럴 때 사용하는 자료구조가 링 버퍼 이다. 어떤 원소가 맨 앞 원소이고, 맨 끝 원소인지 식별하는 변수가 front와 rear이다. 여기에서 프..
스택 (stack) 오늘은 스택을 알아볼꺼다.. 엄청나게 많이 쓰고.. 엄청나게 많이 알고.. ㅇ... ㅇ.. 엄... 바로 알아보자 let's get it! 스택이란...? 스택은 데이터를 임시 저장할 때 사용하는 자료구조로 데이터의 입력과 출력 순서는 후입선출(LIFO) 방식이다. LIPO(Last in Frist out) : 가장 나중에 넣은 데이터를 가장 먼저 꺼낸다 용어 몇가지를 알아보자 푸시 : 데이터를 넣는 작업 팝 : 데이터를 꺼내는 작업 탑 : 데이터의 꼭대기 bottom : 데이터의 마지막 용어정리는 끝나고 군말없이 바로 구현에 들어가보자 일단 스택의 기본 개념을 이해 해야 하니 스택을 생성할 때 크기가 결정되는 고정 크기 스택을 만들어보자 스택 배열 : stk 푸시한 데이터를 저장하는 스택 본체 list..
해시 알고리즘 (Hash Algorithm) 해시를 모르는 상태에서 사진에 나와있는것처럼 a 배열에 35 추가한다고 가정해보자 x의 원소 수는 13이고 앞에서부터 10개의 데이트가 오름차순으로 저장되어 있음 원소를 추가하는 과정은 다음과 같다 1. x[5]와 x[6] 사이에 값이 추가되도록 이진 검색을 이용하고 2. b 원소 처럼 x[6] 이후의 모든 원소를 한 칸씩 뒤로 이동 시키고 3. x[6]에 35를 대입함 결과론적으로 봤을땐 추가한것 맞지만 추가하면서 생기는 복잡도는O(n)이고 비용도 작지 않음 물로 삭제를 할때도 똑같은 비용을 발생시킴 왜냐!? 모든 데이터는 공백을 허용하지 않아요 그래서 우리가 알아볼 해시법을 알아보자... let`s get it! 해시법 해시법(hashing)은 '데이터를 저장할 위치 == index' 를 간단한 연산..

반응형