티스토리 뷰

PS/강의

10일차 강의 (22, 23강)

Codecheck 2024. 2. 7. 17:19

이진검색트리 (22강)

insert, erase, find, update → O(log N)

내부적으로 원소가 크기 순으로 정렬되어 있음 (★장점)

 

자가 균형 트리를 사용해야 O(log N)이 보장 됨 (편향된 트리 때문)

 

STL - set, multiset, map

set에서는 원소가 정렬되어있기 때문에 unordered_set과 달리 대소비교해서 값 찾는 연산이 O(log N)에 가능

iterator를 활용하여 prev, next, advance, lower_bound, upper_bound, find등의 연산이 O(log N)에 제공

 

O(log N)이지만 다른 O(log N) 연산에 비해 느린편임.

 

우선순위 큐 (23강)

pop을 할 때 가장 먼저 들어온 원소가 나오는 대신 우선순위가 가장 높은 원소가 나오는 큐

 

1. 원소의 추가가 O(lg N)

2. 우선순위가 가장 높은 원소의 확인이 O(1)

3. 우선순위가 가장 높은 원소의 제거가 O(lg N)

 

STL

priority_queue (기본 선언시 최대 힙임)

→ 최소힙이 필요할 경우 priority_queue<int, vector<int>, greater<int>>로 선언해야 함

 

priority_queue에서 할 수 있는건 set에서도 할 수 있고 시간복잡도도 동일하지만, 

priority_queue는 set보다 수행 속도가 빠르고, 공간도 적게 차지한다.

 

priority_queue에서 비교 함수를 사용할 때에는 클래스를 만들어서 사용해야 함

class cmp {

public:

  bool operator() (int a, int b) {

         // 내용 

  }

};

'PS > 강의' 카테고리의 다른 글

12일차 강의 (27강)  (0) 2024.02.09
11일차 강의 (24 ~ 26강)  (0) 2024.02.08
9일차 강의 (21강)  (0) 2024.02.06
8일차 강의 (20강)  (0) 2024.01.20
7일차 강의 (18 ~ 19강)  (0) 2024.01.19
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함