본문 바로가기
반응형

알고리즘91

[C++/STL] Algorithm 0. C++ STL - Algorithm - 헤더 선언 필요( #include ) 1. 정렬 정렬 함수 - 일반적인 정렬 함수 - O(nlogn) 보장 - sort(원소 시작 위치 반복자 ,원소 마지막 다음 위치 반복자 , 비교함수) - 예시(오름차순) #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); vector vec{ 5,6,8,12,3,9,1,30 }; cout 2020. 6. 14.
정렬 알고리즘 - 선택 정렬(Selection Sort) 선택 정렬(Selection Sort) 선택 정렬(Selection Sort) 이란? - 정렬 순서에 맞게 하나씩 선택해서 옮기는 정렬 방법이다. - 정렬 순서상 가장 앞서는 것을 선택해서 가장 왼쪽으로 이동시키고, 원래 그 자리에 있던 데이터는 빈 자리에 가져다 놓는다. - N개의 데이터가 주어졌을 때의 O($N^2$)시간 복잡도를 가진다. 선택 정렬의 예시(오름차순) aa 선택 정렬 코드(C++) #include #include using namespace std; void SelectionSort(vector &selectVec) { int maxSize = selectVec.size(); int tmp = 0; int minIndex = 0; for (int i = 0; i selectVec[j].. 2020. 6. 11.
정렬 알고리즘 - 버블 정렬(Bubble Sort) 버블 정렬(Bubble Sort) 버블 정렬(Bubble Sort)이란? - 첫 번째 노드를 시작으로 인접 노드와 비교하여 순서가 잘못되어 있다면 두 원소를 바꾼다. 이 과정을 반복하여 정렬하는 알고리즘이다. - 구현은 매우 간단하지만, 빈번한 데이터의 교환으로 인해 잘 사용되지는 않는다. - N개의 데이터가 주어졌을 때의 O($N^2$)시간 복잡도를 가진다. 버블 정렬의 예시(오름차순) - 정해진 원소를 제외하고 위 과정을 계속하여 반복해서 원소를 정렬한다. 버블 정렬 코드(C++) #include #include using namespace std; void bubbleSort(vector &bubbleVec) { int maxSize = bubbleVec.size(); int tmp = 0; for.. 2020. 6. 8.
알고리즘을 위한 자료구조 - 힙(Heap) 힙(Heap) 힙(Heap)의 개념 - 완전 이진트리(Complete Binary Tree)를 기본으로 한 자료구조이다. - 여러 개의 값 중 최대, 최소를 빠르게 찾기 위해 만들어진 자료구조이다. 힙의 종류 - 최대 힙(Max Heap) : 부모 노드의 키 값이 자식 노드의 키 값보다 크거나 같다. // Key(부모 노드) >= Key(자식 노드) - 최소 힙(Min Heap) : 부모 노드의 키 값이 자식 노드의 키 값보다 작거나 같다. // Key(부모 노드) 2020. 6. 8.
반응형