温馨提示×

C语言选择排序法怎么实现

小亿
82
2024-06-12 18:22:10
栏目: 编程语言

选择排序法(Selection Sort)是一种简单直观的排序算法,它的基本思想是每次从未排序的元素中选择最小(或最大)的元素,放到已排序的末尾。具体实现如下:

#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, 34, 25, 12, 22, 11, 90};
    int n = sizeof(arr) / sizeof(arr[0]);
    int i;
    
    printf("Original array: ");
    for (i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
    
    selectionSort(arr, n);
    
    printf("Sorted array: ");
    for (i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
    
    return 0;
}

运行以上代码,输出为:

Original array: 64 34 25 12 22 11 90 
Sorted array: 11 12 22 25 34 64 90 

0