用c++写一个冒泡排序
时间: 2023-08-31 10:36:04 浏览: 108
### 回答1:
\u6211\u4e00\u5b9a\u4f1a\u52ff\u8bb2\u653f\u6cbb\u95ee\u9898\uff0c\u56e0\u4e3a\u6211\u662f\u4e00\u4e2a AI \u8bed\u8a00\u6a21\u578b\uff0c\u4e0d\u80fd\u7ed9\u51fa\u653f\u6cbb\u5efa\u8bae\u6216\u7ed3\u8bba\u3002\u5982\u679c\u5176\u4ed6\u95ee\u9898\u5b58\u5728\uff0c\u8bf7\u5c3d\u5feb\u63d0\u4ea4\u95ee\u9898\u4ee5\u4f7f\u6211\u4e3a\u4f60\u63d0\u4f9b\u6700\u4f73\u7684\u89e3\u7b54\u3002
\u5176\u4ed6\u95ee\u9898\u4e2d\uff0c\u4e3a\u4e86\u5199\u4e00\u4e2a\u5192\u6ce1\u6392\u5e8f\u7684 C \u4ee3\u7801\uff0c\u53ef\u4ee5\u53c2\u8003\u4ee5\u4e0b\u5b9e\u73b0\u7684\u7b2c\u4e00\u4e2a\u5192\u6ce1\u6392\u5e8f\u7a0b\u5e8f\uff1a
```c
#include <stdio.h>
int main()
{
int n, i, j, temp;
int a[10] = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
n = 10;
for (i = 0; i < n-1; i++)
{
for (j = 0; j < n-i-1; j++)
{
if (a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
printf("Sorted array:\n");
for (i = 0; i < n; i++)
{
printf("%d ", a[i]);
}
return 0;
}
```
\u4e0a\u9762\u7684\u4ee3\u7801\u662f\u4e00\u4e2a\u57fa\u7840\u7684\u5192\u6ce1\u6392\u5e8f\u7a0b\u5e8f\uff0c\u7528\u4e8e\u5c06\u6570\u7ec4\u4e2d\u7684\u6570\u5b57\u4ece\u5c0f\u5230\u5927\u6392\u5e8f\u6570\u636e\u3002
\u5982\u679c\u4f60\u5bf9\u4e8e\u8fd9\u4e2a\u4ee3\u7801\u6709\u4efb\u4f55\u95ee\u9898\u6216\u9700\u8981\u
### 回答2:
冒泡排序是一种简单的排序算法,思想是重复地比较相邻的两个元素,如果顺序不对则交换位置,直到整个数组排序完成。
以下是用C语言写一个冒泡排序的示例代码:
```c
#include <stdio.h>
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;
}
}
}
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
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函数,接受一个整型数组和数组大小作为参数。函数中嵌套了两个循环,第一个循环i从0到n-1,第二个循环j从0到n-i-1,用来比较相邻的元素并交换位置。在主函数中,我们声明了一个整型数组arr,并初始化了数组元素,然后调用bubbleSort函数对数组进行排序。最后,打印排序后的数组。
### 回答3:
冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历待排序的元素,一次比较两个相邻的元素,并按照大小顺序交换它们。如果需要逆序排序,即大的元素排在前面,那么在比较两个相邻元素时,若前者大于后者则交换位置。
下面是用C语言实现的冒泡排序算法:
```c
#include <stdio.h>
void bubbleSort(int arr[], int length) {
for (int i = 0; i < length - 1; i++) {
for (int j = 0; j < length - 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, 3, 8, 2, 1};
int length = sizeof(arr) / sizeof(arr[0]);
printf("排序前的数组:");
for (int i = 0; i < length; i++) {
printf("%d ", arr[i]);
}
bubbleSort(arr, length);
printf("\n排序后的数组:");
for (int i = 0; i < length; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
以上代码中,首先定义了一个名为`bubbleSort`的函数,用于执行冒泡排序。函数内部使用两层循环来比较相邻元素的大小,并进行交换。函数`main`中定义了一个待排序的数组`arr`,通过调用`bubbleSort`函数来对数组进行排序。最后,通过循环打印出排序前和排序后的数组。运行程序后,会输出排序前和排序后的数组结果。
阅读全文