본문 바로가기
반응형

전체 글110

정렬 알고리즘 - 선택 정렬(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.
[C++/STL] 셋(Set), 맵(Map) 1. 셋(Set) 셋(Set) 이란? - 완전 이진 트리 형태로 정렬되어 있기 때문에 빠른 검색 속도를 보장한다. - 원소 삽입, 삭제, 탐색 등의 연산은 O(logn)을 보장한다. - 중복된 원소는 추가할 수 없다. 셋 사용 방법 - 셋 선언 // 헤더 선언 필요 #include // int 자료형을 저장하는 셋 선언 set s; - 원소 추가 // 원소 n 추가 s.insert(n); - 원소 탐색 // 원소 n 찾기, 해당 원소가 존재하면 해당 주소 반환, 없으면 s.end() 반환. s.find(n); - 원소 제거 // 값이 n인 원소 제거 s.erase(n); // 모든 원소 제거 s.clear(); - 기타 // set의 크기(원소의 개수) 반환 s.size(); 2. 맵(Map) 맵(Map.. 2020. 6. 7.
반응형