반응형

Algorithm 2

Binary Search (이진 탐색)

이진탐색은 1차원 리스트에 데이터가 정렬되어 있을 때 주어진 데이터를 효율적으로 찾는 알고리즘이다.만약에 데이터가 정렬되어 있지 않다면, 주어진 데이터를 찾기 위해 리스트의 모든 원소들을 차례로 검색하는 순차 탐색 (Sequential Search)를 수행해야 한다.  탐색 연산은 최악의 경우 O(N) 시간이 소요된다. 이진탐색은 데이터를 미리 정렬하여 최악의 경우에도  logN번의 항목 비교만 하는 매우 효율적인 탐색 방법이다.여기서 N은 리스트에 저장된 항목의 수다.binary_search(left, right, t):if left > right: return None # 탐색 실패mid = (left + right) // 2 # 리스트에서 탐색할 부분의 중간 항목의 인덱스 계산if a[mi..

Stack (스택) / Queue (큐)

스택과 큐는 '추상적 자료구조(Abstract Data Type)'라고 불린다.추상적 자료구조란 자료구조의 방법이 코드로 정의된 것이 아니라, 그 구조의 행동 양식만 정의 된것을 뜻한다. 스택(Stack)요소를 추가하거나 삭제할 때, 맨 위에 부터 차례대로 할 수 있다. Last In First Out(LIFO) (가장 마지막에 들어온 데이터가 가장 먼저 삭제된다) 자료구조 이다.                                                                               웹 브라우저에서 '뒤로가기'를 누르면 스택 자료구조를 사용하게 되는 것이다. 왜냐하면 뒤로가기를 누르게 되면 웹페이지 히스토리 스택의 맨 위에서 한 페이지를 가져가는 것과 같기 때문이다.데..

반응형