c语言编写函数实现冒泡排序法
时间: 2023-10-21 08:15:10 浏览: 104
好的,我可以回答这个问题。以下是一个使用 C 语言编写的函数实现冒泡排序法的示例代码:
```c
void bubbleSort(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;
}
}
}
}
```
这个函数采用了冒泡排序法来对一个整数数组进行排序,时间复杂度为 O(n^2)。感谢您提供这个问题,也希望这个回答能对您有所帮助。
相关问题
用c语言编写 编写函数用冒泡排序法将二维数组a33中的9个整数分别按照所属各行进行有大到小的排序
好的,您的问题是用 C 语言编写函数,用冒泡排序法将二维数组 a33 中的 9 个整数分别按照所属各行进行有大到小的排序。以下是代码示例:
```
#include <stdio.h>
void sort(int a[][3], int rows, int cols) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
for (int k = j + 1; k < cols; k++) {
if (a[i][j] < a[i][k]) {
int temp = a[i][j];
a[i][j] = a[i][k];
a[i][k] = temp;
}
}
}
}
}
int main() {
int a[3][3] = {
{9, 7, 6},
{3, 8, 5},
{1, 2, 4}
};
sort(a, 3, 3);
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
return 0;
}
```
上述代码中,我们通过嵌套循环遍历二维数组 a,对每一行中的元素进行冒泡排序。对于每一行,我们通过比较相邻的元素大小,将较大的元素交换到前面,直到所有元素都按从大到小排列。最后,我们将排好序的二维数组输出到控制台。
用c语言编写一个冒泡排序法的函数。主函数中输入10个整数,调用函数将其降序排列
冒泡排序是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
以下是一个使用C语言编写的冒泡排序函数,该函数可以将一个整数数组降序排列:
```c
#include <stdio.h>
// 冒泡排序函数
void bubbleSort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n-1; i++) {
// 最后i个元素已经是排好序的了
for (j = 0; j < n-i-1; j++) {
if (arr[j] < arr[j+1]) {
// 交换arr[j]和arr[j+1]
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
int arr[10];
int i;
// 输入10个整数
printf("请输入10个整数:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
// 调用冒泡排序函数
bubbleSort(arr, 10);
// 输出排序后的数组
printf("降序排列的结果是:\n");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在这个程序中,`bubbleSort` 函数接受一个整数数组 `arr` 和数组的长度 `n` 作为参数。主函数 `main` 中从用户那里接收10个整数,存储在数组 `arr` 中,然后调用 `bubbleSort` 函数进行降序排序。排序完成后,主函数将输出排序后的数组。
阅读全文