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]);
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)。虽然它的效率不如一些更高级的排序算法,但它易于理解和实现,并且对于小型数据集来说是一个不错的选择。
原文地址: https://www.cveoy.top/t/topic/nx7b 著作权归作者所有。请勿转载和采集!