编写程序从控制台接收用户输入的10个数,采用冒泡排序和选择排序两种方式进行排序,并将原数据和排序后的数据打印输出用C语言编写
时间: 2024-03-17 07:45:54 浏览: 26
好的,以下是 C 语言的实现,分别使用冒泡排序和选择排序两种方式进行排序:
```c
#include <stdio.h>
void bubble_sort(int arr[], int len) {
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - i - 1; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
void selection_sort(int arr[], int len) {
for (int i = 0; i < len - 1; i++) {
int min_index = i;
for (int j = i + 1; j < len; j++) {
if (arr[j] < arr[min_index]) {
min_index = j;
}
}
int temp = arr[i];
arr[i] = arr[min_index];
arr[min_index] = temp;
}
}
int main() {
int arr[10]; // 存储用户输入的10个数
printf("请输入10个整数,用空格隔开:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
printf("原数据:");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
bubble_sort(arr, 10);
printf("冒泡排序后的数据:");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
selection_sort(arr, 10);
printf("选择排序后的数据:");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
程序的思路是:先从控制台接收用户输入的10个整数,然后分别使用冒泡排序和选择排序两种算法对数据进行排序,最后打印输出原数据和排序后的数据。其中,冒泡排序的时间复杂度为 O(n^2),选择排序的时间复杂度也为 O(n^2),但是在实际应用中选择排序通常比冒泡排序更优秀。