请用C++写出一段简单的冒泡排序算法
时间: 2023-08-30 17:10:26 浏览: 44
以下是一段简单的冒泡排序算法的C代码:
```
#include <stdio.h>
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;
}
}
}
}
int main() {
int arr[] = {5, 3, 8, 4, 2};
int n = sizeof(arr)/sizeof(arr[0]);
bubbleSort(arr, n);
printf("Sorted array: ");
for(int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
该算法使用双重循环,从第一个元素开始,将相邻的两个元素进行比较,如果顺序不对则交换它们的位置,直到整个数组排序完成。
相关问题
用C++写一段 冒泡排序算法
以下是C++实现的冒泡排序算法:
```cpp
#include <iostream>
using namespace std;
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[] = {5, 2, 9, 1, 5, 6};
int n = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, n);
cout << "Sorted array: ";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
输出:
```
Sorted array: 1 2 5 5 6 9
```
冒泡排序的思路是从数组的第一个元素开始,如果当前元素比下一个元素大,那么就交换这两个元素的位置,直到数组中所有元素都被比较过一遍。这样一次比较可以将最大的元素移动到数组的最后一个位置。重复这个过程,每次比较的元素个数减少一,直到所有元素都被排序完成。
写一段C++冒泡排序算法
冒泡排序是一种基本的排序算法,其基本思想是将待排序的数列中相邻的两个数进行比较,如果前面的数比后面的数大,则交换这两个数的位置,一次遍历后,最大的数就会被排到数列的最后面,然后再对剩下的数进行同样的操作,最终得到一个有序的数列。
下面是一段C语言实现冒泡排序的代码:
```
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;
}
}
}
}
```
在这段代码中,我们使用了两层循环,外层循环控制比较的轮数,内层循环控制每一轮比较的次数。在每一轮比较中,我们通过比较相邻两个数的大小来判断是否需要交换它们的位置,如果需要交换,就使用一个中间变量temp来暂存其中一个数的值,然后再进行交换操作。
最终,当外层循环执行完毕,整个数列就会按照从小到大的顺序排列好。