使用函数实现选择或冒泡排序:定义选择排序函数void selectsort(int a[],int n) 或者冒泡排序函数viod bubblesort(int a[],int n)对数组a中的元素进行排序,主函数中输入数组元素和元素个数,调用排序函数对数组元素升序排序后输出结果。每个代码都带注释
时间: 2024-02-09 11:11:03 浏览: 62
好的,这里是使用函数实现选择排序和冒泡排序的代码,并且每个代码都加上了注释:
选择排序:
```c
#include <stdio.h>
// 定义选择排序函数,a是待排序数组,n是数组元素个数
void selectsort(int a[], int n) {
int i, j, min, temp;
for (i = 0; i < n - 1; i++) { // 循环n-1次,每次选出一个最小的数放在前面
min = i; // 假设当前未排序部分第一个数为最小值
for (j = i + 1; j < n; j++) { // 在未排序部分中寻找最小的数
if (a[j] < a[min]) {
min = j;
}
}
if (min != i) { // 如果当前假设不是最小值,则交换当前数和最小值
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
}
}
int main() {
int a[100], n, i;
printf("请输入数组元素个数:");
scanf("%d", &n);
printf("请输入数组元素:");
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
selectsort(a, n); // 调用选择排序函数对数组a进行排序
printf("排序后的数组为:");
for (i = 0; i < n; i++) {
printf("%d ", a[i]); // 输出排序后的数组
}
printf("\n");
return 0;
}
```
冒泡排序:
```c
#include <stdio.h>
// 定义冒泡排序函数,a是待排序数组,n是数组元素个数
void bubblesort(int a[], int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) { // 循环n-1次,每次将当前未排序部分的最大值放在最后面
for (j = 0; j < n - 1 - i; j++) { // 每次比较相邻的两个数,将大的数往后冒泡
if (a[j] > a[j + 1]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
int main() {
int a[100], n, i;
printf("请输入数组元素个数:");
scanf("%d", &n);
printf("请输入数组元素:");
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
bubblesort(a, n); // 调用冒泡排序函数对数组a进行排序
printf("排序后的数组为:");
for (i = 0; i < n; i++) {
printf("%d ", a[i]); // 输出排序后的数组
}
printf("\n");
return 0;
}
```
以上两段代码都包含了主函数和对应的排序函数,可以根据需要选择使用哪种排序算法。注释可以帮助理解代码的实现过程和细节,希望对您有所帮助。
阅读全文