sort(3)
-
삽입정렬 (Insertion Sort)
- 삽입정렬(Insertion Sort) - 정렬을 수행할 위치(i)의 값을 저장(tmp)하고 미리 정렬된 왼쪽 부분(j) 중 적절한 위치에 삽입하는 정렬 문제인식) 다음 그림과 같은 수(數)의 배열이 있다. int a[10] = {10, 2, 1, 9, 7, 4, 5, 8, 6, 3}; 이 배열을 오름차순 정렬, 즉 가장 작은 수부터 차례대로 정렬하기 위해선 어떻게 프로그래밍 해야할까? 해결과정) 0) 아래 그림은 이미 4번의 정렬이 이뤄졌다고 가정한 상태이다. 즉, 5번째의 정렬이 이뤄져야 할 상태이며, 4번째 원소까지는 이미 오름차순 정렬이 되어있는 부분이다. 1) 정렬을 수행할 위치를 선정하고 그 값을 저장한다. 2) 왼편에 있는 원소들이 저장한 값보다 크다면 한 칸씩 뒤로 밀어둔다. 3) 적절..
2022.03.29 -
버블정렬 (Bubble Sort) | (+Special Sort)
- 버블정렬(Bubble Sort) - 탐색해나갈 경계(i)를 정하고 현재 위치(j)의 바로 옆 위치(j+1)의 원소들과 비교, 맞바꾸는 정렬 문제인식) 다음 그림과 같은 수(數)의 배열이 있다. int a[10] = {10, 2, 1, 9, 7, 4, 5, 8, 6, 3}; 이 배열을 오름차순 정렬, 즉 가장 작은 수부터 차례대로 정렬하기 위해선 어떻게 프로그래밍 해야할까? 해결과정) 1) 탐색해나갈 범위의 경계를 잡는다. 2) 범위를 잡았으면 현재 위치의 바로 옆 원소와 비교, 맞바꾸기를 경계전까지 연속적으로 실행해나간다. (※ [더보기]를 클릭하면 C/C++ 소스코드를 참조할 수 있습니다.) 더보기 int n, i, j, idx, tmp; int a[10] = {10, 2, 1, 9, 7, 4, ..
2022.03.28 -
선택정렬 (Selection Sort)
- 선택정렬(Selection Sort) - 기준 위치(i)에서 나머지 원소들을 탐색(j)하여 가장 작은 값의 위치(idx)를 선택하고 맞바꾸는 정렬 문제인식) 다음 그림과 같은 수(數)의 배열이 있다. int a[10] = {2, 10, 1, 9, 7, 4, 5, 8, 3, 6}; 이 배열을 오름차순 정렬, 즉 가장 작은 수부터 차례대로 정렬하기 위해선 어떻게 프로그래밍 해야할까? 해결과정) 1) 기준 위치를 배열의 가장 왼쪽부터 차례대로 잡아나갈 것이고, 2) 기준위치를 잡았으면 그 나머지 원소들을 탐색하여 그들 중 가장 작은 값(최솟값)의 위치를 찾을 것이다. (값 자체가 아닌 위치를 찾는 이유는 곧 나온다.) 3) 그리고는 기준 위치의 원소랑 최솟값 위치의 원소랑 맞바꾸는 것이다. (※ [더보기]..
2022.03.28