c语言编写一个冒泡排序
时间: 2023-09-23 10:05:34 浏览: 109
用C语言编写冒泡排序
### 回答1:
好的,下面是一个 c 语言实现的冒泡排序代码:
```
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
swap(&arr[j], &arr[j + 1]);
}
}
}
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr)/sizeof(arr[0]);
bubbleSort(arr, n);
printf("Sorted array: \n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
冒泡排序算法的基本思想是:比较相邻的元素,如果第一个比第二个大,就交换它们两个;对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;针对所有的元素重复以上的步骤,除了最后一个;重复步骤1~3,直到排序完成。
### 回答2:
冒泡排序是一种简单且常用的排序算法,它重复地遍历需要排序的序列,比较相邻的两个元素,并根据大小进行交换操作。通过多次遍历,将最大(或最小)的元素逐渐放置到序列的一端,直到整个序列排序完成。
下面是用C语言编写的冒泡排序算法示例:
```c
#include <stdio.h>
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int 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;
}
}
}
}
int main() {
int arr[] = {5, 2, 8, 6, 3, 9, 1, 4, 7};
int n = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, n);
printf("冒泡排序结果:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
以上代码中,我们定义了一个函数`bubbleSort`来实现冒泡排序。通过两重循环,逐个比较相邻的元素并进行交换,直到最终完成排序。在`main`函数中,我们定义了一个整数数组`arr`,并通过`sizeof`运算符计算出数组长度`n`。然后调用`bubbleSort`函数对数组进行排序,并使用`printf`函数输出排序结果。
该冒泡排序的输出结果为:1 2 3 4 5 6 7 8 9,即对原数组进行升序排序。
### 回答3:
冒泡排序是一种简单的排序算法,它的基本思想是重复地交换相邻的两个元素,把较大的元素往后移。
以下是用C语言编写的冒泡排序算法:
```c
#include <stdio.h>
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int 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;
}
}
}
}
int main() {
int arr[] = {5, 2, 8, 6, 1, 9, 3, 7, 4};
int n = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, n);
printf("排序后的数组:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
上述代码中,我们首先定义了一个`bubbleSort`函数,用来进行冒泡排序。该函数接受一个整型数组和数组的长度作为参数。
在`bubbleSort`函数内,我们使用了两个嵌套的`for`循环来遍历数组并进行比较。外层循环控制排序的轮数,内层循环则负责逐个比较相邻元素,并根据大小进行交换。
最后,在`main`函数中,我们定义了一个待排序的整型数组,并计算了数组的长度。然后,我们调用`bubbleSort`函数对数组进行排序,并使用`printf`函数输出排序结果。
运行以上代码,会输出排序后的数组:1 2 3 4 5 6 7 8 9。这就是冒泡排序的结果。
阅读全文