C言語で簡易選択ソートアルゴリズムを実装する方法

単純選択ソートは簡単な直感的なソートアルゴリズムで、基本的な考え方は、ソートする対象配列の先頭から順次、後続の要素と比較して最小の要素を探し、現在の位置の要素と交換し、この処理を配列すべてが有序になるまで繰り返すことです。

これは、C 言語で単純な選択ソートアルゴリズムを実装するためのサンプルコードです。

#include <stdio.h>

void selectionSort(int arr[], int n) {
    int i, j, minIndex, temp;
    
    for(i = 0; i < n-1; i++) {
        minIndex = i; // 假设当前位置是最小元素的下标
        for(j = i+1; j < n; j++) {
            // 找到更小的元素,更新最小元素的下标
            if(arr[j] < arr[minIndex])
                minIndex = j;
        }
        
        // 将最小元素与当前位置元素交换
        temp = arr[i];
        arr[i] = arr[minIndex];
        arr[minIndex] = temp;
    }
}

int main() {
    int arr[] = {64, 25, 12, 22, 11};
    int n = sizeof(arr) / sizeof(arr[0]);
    
    selectionSort(arr, n);
    
    printf("排序后的数组:\n");
    for(int i = 0; i < n; i++)
        printf("%d ", arr[i]);
    
    return 0;
}

上記のコードを実行すると、出力結果は次のようになります。

排序后的数组:
11 12 22 25 64

こうして単純選択ソートアルゴリズムが実現する。

bannerAds