冒泡排序

冒泡排序

#include <iostream>
using namespace std;

#define N 10

void BubbleSort(int *a, int n)
{
int i, j;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - 1 - i; j++)
{
if (a[j] > a[j + 1])
{
a[j] = a[j] + a[j + 1];
a[j + 1] = a[j] - a[j + 1];
a[j] = a[j] - a[j + 1];
}
}
}
}

int main()
{
int i, j;
int *a = new int[N];

for (i = 0; i < N; i++)
{
cin >> a[i];
}

BubbleSort(a, N);

for (i = 0; i < N; i++)
{
cout << a[i] << " ";
}
cout << endl;
return 0;
}
  • 时间复杂度: O(pow(n,2))

测试

[blazehu@MacBook ~]$ g++ -o BubbleSort BubbleSort.cpp
[blazehu@MacBook ~]$ ./BubbleSort
0
9
8
1
2
3
6
5
4
7
0 1 2 3 4 5 6 7 8 9
[blazehu@MacBook ~]$