[Algorithm] 삽입정렬
첫 key 값은 [1]번째 인덱스로 하여, 앞쪽(왼쪽)에 있는 정렬과 값을 비교하여 삽입하는 정렬이다. EX) 2,5,3,1,7 [기본 배열] 2,5,3,1,7 2,3,5,1,7 [교환] 1,2,3,5,7 [교환] 1,2,3,5,7 #include # define LEN 5 void insertionSort(int* arr){ int i, j, key; for(i=1; i=0 && arr[j]>key; j--){ arr[j+1] = arr[j]; } // i-1부터 역순으로 조사, j값은 음수가 아니어야 함 // key 값보다 배열에 있는 값이 크면 j번째를 j+1로 이동 arr[j..
2023. 2. 15.
[Algorithm] 버블정렬
버블정렬 이웃하는 원소(index)의 값을 비교하여, 더 큰 값을 뒤로 보내는 정렬이다. 배열의 뒷쪽부터 정렬하는 방법이라고 이해할 수 있다. EX) 2,5,3,1,7 [기본 배열] 2,5,3,1,7 [j=1, j-1=0] 2,3,5,1,7 [j=2, j-1=1, 교환] 2,3,1,5,7 [j=3, j-1=2, 교환] 2,3,1,5,7 [j=4, j-1=3] . . . #include #include int main(){ int arr[4]= {2,4,5,1} int temp; for (int i=0; i
2023. 2. 2.
[Algorithm] 선택정렬
선택정렬(Selection Sort) 맨 앞에서부터 제일 작은 원소를 배치하게 만들어나가는 알고리즘이다. 정렬 알고리즘은 입력 인자로 정렬할 자료들이 있는 배열 시작 주소, 원소 개수, 비교 알고리즘이 필요하다. 1) 확정되지 않은 원소와 뒤쪽에 있는 원소를 비교하여, 최솟값을 발견할시 확정되지 않은 원소와 교환한다. EX) 2,7,1,5 [i=0, j=1] 2,7,1,5 [i=0, j=2] 1,7,2,5 [교환] 1,7,2,5 [i=0, j=3] 1,7,2,5 [i=1, j=2] 1,2,7,5 [교환] . . . 예시 코드 1 #define _CRT_SECURE_NO_WARNINGS #include #include int main() { int arr[10] = { 1,4,5,7,2,12,65,23,7..
2023. 1. 31.