冒泡排序的代码c++
时间: 2023-11-26 11:44:08 浏览: 33
好的,这是冒泡排序的 C++ 代码:
```c++
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;
}
}
}
}
```
这个函数接受一个整数数组和数组长度作为参数,使用冒泡排序算法对数组进行排序。
相关问题
可视化冒泡排序代码C++
以下是一个简单的冒泡排序的C++代码,带有可视化效果:
```cpp
#include <iostream>
#include <graphics.h>
using namespace std;
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 n = 10;
int arr[n] = {23, 67, 12, 98, 34, 56, 78, 45, 21, 10};
initwindow(800, 600, "Bubble Sort Visualization");
setbkcolor(WHITE);
cleardevice();
setcolor(BLUE);
settextstyle(DEFAULT_FONT, HORIZ_DIR, 2);
outtextxy(280, 50, "Bubble Sort Visualization");
settextstyle(DEFAULT_FONT, HORIZ_DIR, 1);
int x = 100, y = 150, w = 50, h = 50;
for (int i = 0; i < n; i++) {
rectangle(x, y, x + w, y + h);
char text[10];
sprintf(text, "%d", arr[i]);
outtextxy(x + 15, y + 20, text);
x += w + 10;
}
delay(1000);
bubbleSort(arr, n);
setcolor(GREEN);
settextstyle(DEFAULT_FONT, HORIZ_DIR, 2);
outtextxy(280, 400, "Sorted Array");
settextstyle(DEFAULT_FONT, HORIZ_DIR, 1);
x = 100, y = 450;
for (int i = 0; i < n; i++) {
rectangle(x, y, x + w, y + h);
char text[10];
sprintf(text, "%d", arr[i]);
outtextxy(x + 15, y + 20, text);
x += w + 10;
}
getch();
closegraph();
return 0;
}
```
这个程序使用了 `graphics.h` 库来进行可视化操作,你需要在编译环境中配置这个库才能成功运行。此外,你也可以使用其他的可视化库来实现类似的效果。
冒泡排序代码实现c++
冒泡排序是一种简单但效率较低的排序算法。以下是冒泡排序在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]) {
// 交换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("冒泡排序结果:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
输出结果:
```
冒泡排序结果:
11 12 22 25 34 64 90
```