본문 바로가기
  • Let's study

알고리즘15

[알고리즘] 병합 정렬 - C++ 병합 정렬 #include using namespace std; int temp[6]; int arr[] = { 4, 2, 6, 1, 5, 3 }; void merge(int start, int end) { int mid = (start + end) / 2; int i = start, j = mid + 1, k = start; while (i 2021. 9. 22.
[알고리즘] 퀵 정렬 - C++ 퀵 정렬 #include using namespace std; int n, cnt; int arr[] = { 4, 2, 6, 1, 5, 3 }; void quickSort(int s, int e) { if (s >= e)//원소가 1개인 경우 return; int pivot = s;//피벗은 첫번째 원소 int left = s+1, right = e; int temp; while (left s)//피벗보다 작은 값을 만날 때까지 이동 right--; if (left > right) { temp = arr[right]; arr[right] = arr[pivot]; arr[pivot] = temp; } else { temp = arr[right]; arr[right] = arr[left]; arr[left].. 2021. 9. 22.
[알고리즘] 삽입 정렬 - C++ 삽입 정렬 #include using namespace std; int arr[] = {4, 2, 6, 1, 5, 3}; int main() { for (int i = 1; i = 0 && arr[j - 1] > arr[j]){//왼쪽에 있는 값이 오른쪽에 있는 값보다 큰 경우 계속 swap int temp = arr[j - 1]; arr[j - 1] = arr[j]; arr[j] = temp; j--; } } for (int i=0; i < 6; i++) cout 2021. 9. 22.
[알고리즘] 선택 정렬 - C++ 선택 정렬 #include using namespace std; int arr[] = { 4, 2, 6, 1, 5, 3 }; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL), cout.tie(NULL); int idx = 0; for (int i = 0; i < 6; i++) { int min = 100;//배열의 값보다 큰 값으로 잡기 for (int j = i; j < 6; j++) { if (arr[j] < min) {//제일 작은 값 찾기 min = arr[j]; idx = j;//제일 작은 값이 저장되어 있는 인덱스 } } int temp = arr[i];//i와 제일 작은 값이 저장된 인덱스와 자리 바꾸기 arr[i] = arr[id.. 2021. 9. 22.
[알고리즘] 버블 정렬 - C++ 버블 정렬 #include using namespace std; int arr[] = {4, 2, 6, 1, 5, 3}; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL), cout.tie(NULL); for (int i = 0; i arr[j + 1]){//붙어있는 두 값을 비교하여 왼쪽보다 오른쪽이 작을 경우 int temp = arr[j];//자리 바꿈 arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } for (int i=0; i < 6; i++) cout 2021. 9. 22.
[알고리즘] Algorithm 헤더 - C++ min / max min(a,b): a와 b 중에 제일 작은 수를 반환 max(a,b): a와 b 중에 제일 큰 수를 반환 원래는 (a,b) 안에 2개의 값만 넣을 수 있지만 ({a,b,c,d}) 형식으로 사용하면 여러 값의 크기를 비교할 수 있다. #include #include using namespace std; int main(){ cout 2021. 9. 19.