배열을 오름차순으로 정렬한다는 것은 가장 작은 요소부터 가장 큰 요소까지 요소를 정렬하는 것을 의미합니다. 이번 글에서는 C 프로그래밍 언어에서 배열을 오름차순으로 정렬하는 방법을 배웁니다.
배열을 오름차순으로 정렬하는 방법에는 여러 가지가 있습니다. 단순화를 위해 이 기사에서는 선택 정렬을 사용하겠습니다.
연산
선택 정렬은 전체 배열이 정렬될 때까지 배열의 정렬되지 않은 부분에서 최소 요소를 반복적으로 찾아 배열의 정렬된 부분의 시작 부분에 배치하는 간단한 정렬 알고리즘입니다.
- 정렬되지 않은 부분에서 최소 요소(오름차순 고려)를 찾아 맨 처음에 반복적으로 배치하면 배열을 오름차순으로 정렬할 수 있습니다.
- 알고리즘은 주어진 배열에서 두 개의 하위 배열을 유지합니다.
- 이미 정렬된 하위 배열입니다.
- 정렬되지 않은 나머지 하위 배열입니다.
- 선택 정렬을 반복할 때마다 정렬되지 않은 하위 배열에서 최소 요소(오름차순 고려)가 선택되어 정렬된 하위 배열로 이동됩니다.
에 대한 전체 기사를 참조하세요. 선택 정렬 상세 사항은!
C의 배열 정렬 프로그램
씨
// C program to sort the array in an> // ascending order using selection sort> #include> > void> swap(>int>* xp,>int>* yp)> {> >int> temp = *xp;> >*xp = *yp;> >*yp = temp;> }> > // Function to perform Selection Sort> void> selectionSort(>int> arr[],>int> n)> {> >int> i, j, min_idx;> > >// One by one move boundary of> >// unsorted subarray> >for> (i = 0; i // Find the minimum element in // unsorted array min_idx = i; for (j = i + 1; j if (arr[j] min_idx = j; // Swap the found minimum element // with the first element swap(&arr[min_idx], &arr[i]); } } // Function to print an array void printArray(int arr[], int size) { int i; for (i = 0; i printf('%d ', arr[i]); printf('
'); } // Driver code int main() { int arr[] = { 0, 23, 14, 12, 9 }; int n = sizeof(arr) / sizeof(arr[0]); printf('Original array:
'); printArray(arr, n); selectionSort(arr, n); printf('
Sorted array in Ascending order:
'); printArray(arr, n); return 0; }> |
숫자로 백만
>
>산출
Original array: 0 23 14 12 9 Sorted array in Ascending order: 0 9 12 14 23>
복잡성 분석
- 시간 복잡도: O(N2) 보조공간 : O(1)