算法设计:
首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则交换
比较第二个和第三个记录的关键字,以此类推
直到第n - 1个记录和第n个记录关键字进行过比较为止。
时间复杂度: O(n*n)
空间复杂度: O(1)
#include "stdafx.h"
#include <iostream>
using namespace std;
void BubbleSort(int a[], int N)
{
int i, j, flag = 1,temp;
for (i = 0; (i < N - 1) && flag; i++)
{
flag = 0;
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;
flag = 1;
}
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int a[] = {5,6,4,9,1,3,2,7,8};
int lena = sizeof(a) / sizeof(a[0]);
BubbleSort(a, lena);
for (int i = 0; i < lena; i++)
cout << a[i] << " ";
return 0;
}