采用冒泡法或选择排序法对10个整数进行从小到大排序,要求10个整数用 scanf)函数输入或随机函数 rand)产生
时间: 2025-01-30 17:10:36 浏览: 31
要使用冒泡排序或选择排序算法对10个整数进行从小到大的排序,我们可以分别编写两个程序片段。这里我会给出选择排序和冒泡排序的示例代码,然后你可以根据自己的需求选择其中一种。
**选择排序(Selection Sort)**:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand(time(0)); // 设置随机种子
int arr[10];
for (int i = 0; i < 10; ++i)
arr[i] = rand() % 100; // 随机生成0-99之间的整数
printf("Original array:\n");
for (int i = 0; i < 10; ++i)
printf("%d ", arr[i]);
printf("\n");
// 选择排序
for (int i = 0; i < 9; ++i) {
int min_index = i;
for (int j = i + 1; j < 10; ++j)
if (arr[j] < arr[min_index])
min_index = j;
// 交换最小元素
int temp = arr[i];
arr[i] = arr[min_index];
arr[min_index] = temp;
printf("After iteration %d:\n", i+1);
for (int k = 0; k < 10; ++k)
printf("%d ", arr[k]);
printf("\n");
}
printf("Sorted array:\n");
for (int i = 0; i < 10; ++i)
printf("%d ", arr[i]);
printf("\n");
return 0;
}
```
**冒泡排序(Bubble Sort)**:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand(time(0));
int arr[10];
for (int i = 0; i < 10; ++i)
arr[i] = rand() % 100;
printf("Original array:\n");
for (int i = 0; i < 10; ++i)
printf("%d ", arr[i]);
printf("\n");
// 冒泡排序
bool swapped;
for (int i = 0; i < 9; ++i) {
swapped = false;
for (int j = 0; j < 9 - i; ++j) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
swapped = true;
}
}
if (!swapped)
break; // 如果这一轮没有发生交换,说明数组已经有序,提前结束
printf("After pass %d:\n", i + 1);
for (int k = 0; k < 10; ++k)
printf("%d ", arr[k]);
printf("\n");
}
printf("Sorted array:\n");
for (int i = 0; i < 10; ++i)
printf("%d ", arr[i]);
printf("\n");
return 0;
}
```
这两个程序都会先生成一个包含10个随机整数的数组,然后分别执行选择排序和冒泡排序算法并打印每一步的状态。
阅读全文
相关推荐


















