配列を昇順に並べ替えるということは、要素を最小の要素から最大の要素に並べることを意味します。この記事では、C プログラミング言語で配列を昇順に並べ替える方法を学習します。
配列を昇順に並べ替える方法はたくさんありますが、簡単にするために、この記事では選択並べ替えを使用します。
アルゴリズム
選択ソートは、配列全体がソートされるまで、配列の未ソート部分から最小要素を繰り返し見つけて、それを配列のソート部分の先頭に配置する単純なソート アルゴリズムです。
- 配列を昇順にソートするには、ソートされていない部分から最小の要素を (昇順を考慮して) 見つけて先頭に配置することを繰り返します。
- このアルゴリズムは、指定された配列内に 2 つのサブ配列を維持します。
- すでにソートされている部分配列。
- ソートされていない残りの部分配列。
- 選択ソートを繰り返すたびに、ソートされていない部分配列から最小要素 (昇順を考慮) が選択され、ソートされた部分配列に移動されます。
完全な記事を参照してください。 選択範囲の並べ替え 詳細については!
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)