우선순위 큐 우선순위가 가장 높은 데이터를 먼저 삭제하는 자료구조 데이터를 우선순위에 따라 처리하고 싶을 때 사용 구현 리스트를 이용한 구현 힙(heap)을 이용한 구현 데이터의 개수가 N개일 때, 구현 방식에 따른 시간 복잡도는 다음과 같음 우선순위 큐 구현 방식 삽입 시간 삭제 시간 리스트 O(1) O(N) 힙(Heap) O(logN) O(logN) 리스트의 경우 데이터를 차례대로 넣은 뒤, 우선순위에 맞게 꺼내는 방식 단순히 N개의 데이터를 힙에 넣었다가 모두 꺼내는 작업은 정렬과 동일(힙 정렬) 이 경우, 시간 복잡도는 O(NlogN) 힙(Heap)의 특징 힙은 완전 이진 트리 자료구조의 일종 힙에서는 항상 루트 노드를 제거 최소 힙(min heap) 루트 노드가 가장 작은 값을 가짐 값이 작은 ..
'Do it! 자료구조와 함께 배우는 알고리즘 입문(파이썬)' 책을 기반으로 정리한 내용입니다. 배열(array)이란? 배열(array)은 같은 타입의 변수들로 이루어진 유한 집합 파이썬에서는 서로 다른 자료형을 같이 저장할 수 있음 배열을 구성하는 각각의 값을 배열 요소(element) 배열에서의 위치를 가리키는 숫자는 인덱스(index) 배열은 같은 종류의 데이터를 많이 다뤄야 하는 경우에 사용할 수 있는 가장 기본적인 자료구조 파이썬에서 배열은 리스트(list)와 튜플(tuple)로 구현할 수 있다. 검색 알고리즘 검색과 키 검색 조건에서 주목하는 항목을 키 대부분 키는 데이터의 일부 데이터가 간단한 정숫값이나 문자열이면 데이터값이 그대로 키값이 될 수 있음 배열 검색 선형 검색 직선 모양(선형)으..