编写一个采用冒泡法对n个数由小到大进行排序的函数
时间: 2023-04-11 10:04:52 浏览: 187
以下是一个采用冒泡法对n个数由小到大进行排序的函数:
void bubbleSort(int arr[], int n) {
int i, j;
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
其中,arr为待排序的数组,n为数组中元素的个数。函数中使用了两层循环,外层循环控制排序的轮数,内层循环控制每一轮中相邻元素的比较和交换。如果相邻元素的顺序不符合要求,则交换它们的位置,直到所有元素都按照从小到大的顺序排列。
相关问题
编写 C 程序,实现输入 n 个数,然后按从大到小排序 输出,排序函数可采用冒泡排序法进行,排序函数单独放到 mysort.c 文件中。
好的,我理解了你的问题。以下是实现该功能的 C 代码:
```c
#include <stdio.h>
#include "mysort.h" // 包含排序函数的头文件
int main() {
int n;
printf("请输入要排序的数的个数:");
scanf("%d", &n);
int nums[n];
printf("请输入这 %d 个数:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
mysort(nums, n); // 调用排序函数进行排序
printf("排序后的结果为:\n");
for (int i = 0; i < n; i++) {
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
```
其中,排序函数单独放置在 mysort.c 文件中,代码如下:
```c
void mysort(int arr[], int len) {
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - 1 - i; j++) {
if (arr[j] < arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
```
这里使用冒泡排序法进行排序,时间复杂度为 O(n^2)。排序函数的参数为一个整型数组和数组长度,返回值为 void 类型,表示函数直接修改了数组。在主函数中,先读入需要排序的数的个数和具体数值,然后调用排序函数进行排序,最后输出排序后的结果。
采用冒泡法编写函数,实现对 n 个整数进行排序,并利用C语言编写主函数调用此函数,实现对 10 个整数的排序。
好的,这是一个经典的排序算法,冒泡排序。以下是C语言实现的代码:
```c
#include <stdio.h>
void bubble_sort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[10] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};
int n = 10;
int i;
printf("排序前的数组:\n");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
bubble_sort(arr, n);
printf("排序后的数组:\n");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
这个程序中,我们定义了一个 `bubble_sort` 函数,它接受一个整数数组和数组的长度作为参数,然后使用冒泡排序算法将数组进行排序。主函数中,我们定义了一个包含 10 个整数的数组,并将其传递给 `bubble_sort` 函数进行排序。最后,我们输出排序前后的数组,以确保程序正确运行。
运行结果如下:
```
排序前的数组:
3 1 4 1 5 9 2 6 5 3
排序后的数组:
1 1 2 3 3 4 5 5 6 9
```
希望这个代码可以帮到你!
阅读全文