首先,让我们来讲解一下“C程序 选择排序”的完整使用攻略。
什么是选择排序
选择排序是一种简单的排序算法。它的基本思想是在未排序的元素序列中找到最小(大)元素,放到序列的起始位置,然后再从剩余未排序元素中继续寻找最小(大)元素,放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
C程序 选择排序
下面是一个示例代码:
#include <stdio.h>
void SelectionSort(int arr[], int n) {
int i, j, min_index;
for (i = 0; i < n - 1; i++) {
min_index = i;
for (j = i + 1; j < n; j++) {
if (arr[j] < arr[min_index]) {
min_index = j;
}
}
int temp = arr[min_index];
arr[min_index] = arr[i];
arr[i] = temp;
}
}
int main(void) {
int arr[] = {64, 25, 12, 22, 11};
int n = sizeof(arr) / sizeof(arr[0]);
SelectionSort(arr, n);
int i;
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
思路:
选择排序的基本思路是:首先假定最小值为数组的第 1 个元素,然后在剩下的元素中找到最小值,并与第 2 个元素交换位置;接下来在剩下的元素中选取最小值并与第 3 个元素交换位置;以此类推,直到最终所有元素都有序。
– 对于给定的未排序数组,通过循环遍历查找未排序部分中的最小元素。
– 将找到的最小元素与未排序部分的首位交换,将找到的最小元素放置到已排序部分的末尾。
– 重复上述过程,知道所有元素都有序。
只要掌握了以上思路,并以此写出了 C 语言代码,就能成功实现选择排序了。
示例
下面是两个实例,分别验证选择排序算法运行的正确性:
- 第一个实例:输入未排好序的数组 {64, 25, 12, 22, 11},程序输出已排好序的数组 {11, 12, 22, 25, 64}。
代码如下:
int main() {
int arr[] = {64, 25, 12, 22, 11};
int n = sizeof(arr) / sizeof(arr[0]);
SelectionSort(arr, n);
printf("排序后的数组:\n");
PrintIntArray(arr, n);
return 0;
}
输出结果:
排序后的数组:
11 12 22 25 64
- 第二个实例:输入未排好序的数组 {1, 3, 5, 7, 3},程序输出已排好序的数组 {1, 3, 3, 5, 7}。
代码如下:
int main() {
int arr[] = {1, 3, 5, 7, 3};
int n = sizeof(arr) / sizeof(arr[0]);
SelectionSort(arr, n);
printf("排序后的数组:\n");
PrintIntArray(arr, n);
return 0;
}
输出结果:
排序后的数组:
1 3 3 5 7
到此为止,C程序 选择排序的完整使用攻略讲解完毕。