Run if you want it
300x250

정렬 4

[정렬] 퀵 정렬(Quick Sort)

퀵 정렬 원소을 하나 정하여 이를 pivot(기준 원소)으로 삼고, 해당 pivot보다 작은 수들과 큰 수로 나누는 방식의 정렬. 퀵 정렬을 한번 마치고 나면 pivot을 기준으로 다음과 같이 정렬됨. 왼쪽은 pivot 보다 작은(혹은 작거나 같은) 수 오른쪽은 pivot을 기준으로 큰 수 pivot의 위치는 확정됨(정렬되었음을 의미) 위와 같은 규칙을 가지고 재귀 호출을 통해 구현 구현 #include using namespace std; void my_swap(int *x, int *y) { int tmp; tmp = *y; *y = *x; *x = tmp; } /* 퀵 정렬 */ void quick_sort(int arr[], int start, int end) { if(start >= end) /..

Algorithm/기초 2022.09.14

[정렬] 삽입정렬

삽입정렬 원소를 적절한 위치에 삽입하는 방법으로서, 이미 정렬이 되어있는 앞의 원소와 비교해 나아가면서 필요할 때만 위치를 변경 #include using namespace std; void my_swap(int *x, int *y) { int tmp; tmp = *y; *y = *x; *x = tmp; } /*삽입 정렬 */ void insertion_sort(int arr[], int cnt) { int j; for(int i=0; i=0 && arr[j] > arr[j+1]) { my_swap(&arr[j], &arr[j+1]); j--; } } } int ary[10] = { 1, 10 ,5, 3, 8, 7, 6, 4, 2, 9}; int main() { insertion_sort(ary,10);..

Algorithm/기초 2022.09.13

[정렬] 정렬 개요 및 선택 정렬

정렬: 어떤 원소들의 집합을 특정 기준을 적용하여 나열함 알고리즘에서 "정렬"은 알고리즘의 성능을 극명히 보여주는 알고리즘. 선택정렬 선택정렬은 정렬 중 가장 기본적인 정렬 방식으로, 원소 중 가장 작은 값을 찾아 앞으로 보내는 방식. 구현코드 #include using namespace std; void my_swap(int *x, int *y) { int tmp; tmp = *y; *y = *x; *x = tmp; } /* 선택 정렬 */ void selection_sort(int arr[], int cnt) { int min; for(int i=0; i

Algorithm/기초 2022.09.13
728x90