관리 메뉴

기억을 위한 기록들

STL에서의 알고리즘 7가지 본문

C & CPP

STL에서의 알고리즘 7가지

에드윈H 2020. 8. 19. 11:37

1. 원소를 수정하지 않는 알고리즘

- 원소의 순서나 값을 변경하지 않고 원소를 읽기만 하는 알고리즘

(탐색/비교 등)

 

2. 원소를 수정하는 알고리즘(덮어쓰기 모드로 동작. 삽입모드로 동작하려면 insert_iterator 사용)

- 원소의 값을 변경하거나, 목적지 순차열로 원소를 복사하는 알고리즘

(복사/채우기/교환/합병/수정 등)

 

3. 제거 알고리즘

- 2번 '원소를 수정하는 알고리즘'의 특수한 형태로 원소를 실제로 제거하지 않고 논리적으로 제거(다음 원소로 덮어쓰기)하기 때문에 순차열의 size를 실제로는 변경X(실제로 변경하려면 컨테이너의 erase()함수 사용)

(제거/조건제거)

 

4. 변경 알고리즘(순서 변경)

- 순차열의 원소를 서로 교환하거나 이동하여 순차열 원소의 '순서'를 변경하는 알고리즘

(사전순/랜덤/조건별/역순서/회전)

 

 

5. 정렬 알고리즘

- 4번 '변경 알고리즘'의 특수한 형태로 특정 정렬 기준으로 원소의 순서를 변경하며 정렬.

(힙 관련(생성,추가,삭제,정렬)/

 

*순차열의 원소를 정렬하려면 sort()-퀵정렬 기반/stable_sort()-머지정렬 기반/partial_sort()-힙정렬 이렇게 3개 알고리즘을 사용하며, 각각의 복잡도의 특징에 따라 순차열에 따라 적정한 알고리즘 선택사용

 

6. 정렬된 범위 알고리즘

- 정렬된 구간에서만 동작하는 알고리즘. 입력 순차열이 반드시 정렬돼 있어야 한다.

(이진 검색 알고리즘/합집합/교집합/포함/중복찾기)

 

 

7. 수치 알고리즘

- 수치 관련 원소를 다룸. <numeric> 헤더에 정의

(원소간의 연산/누적연산/원소 간의 차/