以下是使用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]);
    
    printf("Original array: ");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
    
    selectionSort(arr, n);
    
    printf("Sorted array: ");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
    
    return 0;
}

输出:

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

在上面的代码中,我们定义了一个名为selectionSort()的函数,该函数用于对整数数组进行选择排序。该函数有两个参数,一个是整数数组,另一个是数组的大小。

selectionSort()函数中,我们使用两个for循环。外部循环用于遍历数组中的每个元素,而内部循环用于查找最小元素的索引。一旦找到最小元素的索引,我们交换该元素与当前元素的位置,然后继续下一个迭代。

main()函数中,我们定义了一个整数数组,并使用sizeof()运算符计算数组的大小。然后,我们打印原始数组,调用selectionSort()函数对数组进行排序,并再次打印排序后的数组。

选择排序是一种简单的排序算法,其时间复杂度为O(n^2)。虽然它的效率不如一些更高级的排序算法,但它易于理解和实现,并且对于小型数据集来说是一个不错的选择。

C语言选择排序算法实现详解

原文地址: https://www.cveoy.top/t/topic/nx7b 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录