用选择排序法对数组a的元素从小到大排序。例如,输入2 5 4 1 6 2 7 3 2 9 4,则应输出1 2 2 2 3 4 5 6 7 9。代码并逐步解释此代码
时间: 2023-04-03 11:03:44 浏览: 74
以下是用 C 语言实现选择排序的代码:
```
#include <stdio.h>
void selectionSort(int arr[], int n) {
int i, j, min_idx;
for (i = 0; i < n-1; i++) {
min_idx = i;
for (j = i+1; j < n; j++)
if (arr[j] < arr[min_idx])
min_idx = j;
int temp = arr[min_idx];
arr[min_idx] = arr[i];
arr[i] = temp;
}
}
int main() {
int a[10], i;
for (i = 0; i < 10; i++)
scanf("%d", &a[i]);
selectionSort(a, 10);
for (i = 0; i < 10; i++)
printf("%d ", a[i]);
return 0;
}
```
选择排序的基本思想是:每次从未排序的部分中选出最小的元素,放到已排序部分的末尾。具体实现时,我们用两个循环,外层循环控制已排序部分的末尾,内层循环在未排序部分中找到最小的元素,然后将其与已排序部分的末尾交换。
在上面的代码中,我们定义了一个 `selectionSort` 函数来实现选择排序。这个函数接受两个参数:一个整型数组 `arr` 和数组的长度 `n`。在函数内部,我们使用两个循环来实现选择排序的核心算法。最后,我们在 `main` 函数中读入数组 `a` 的元素,调用 `selectionSort` 函数对其进行排序,然后输出排序后的结果。
需要注意的是,这个代码是用 C 语言编写的,不是由 AI 语言模型编写的。
阅读全文