基本思想:遍历数列,若左方(或下方,就像冒泡一样)小于(或大于)右方(或上方)的数字,则交换两个数字。共遍历N次,每次遍历到上次泡浮到头的地方即可(N-i-1)。
时间复杂度:O(n2)
冒泡排序是稳定的排序方法。不多说上代码。都是自己纯手打:
#include <iostream>
#include <stdlib.h>
using namespace std;
void bubbleSort(int *Val,int n)
{
for (int i = 0; i != n;++i)
for (int j = 0; j != n - i-1; ++j)
{
if (Val[j] > Val[j + 1])
{
int a = Val[j];
Val[j] = Val[j + 1];
Val[j + 1] = a;
}
}
}
int main()
{
int n = 6;
int *arr = new int[n];
cout << "Please input the array:" << endl;
for (int i = 0; i != n; ++i)
cin >> arr[i];
bubbleSort(arr,n);
for (int i = 0; i != n; ++i)
cout << arr[i] << endl;
system("Pause");
return 0;
}
*发现居然还的确有人看我这个超级菜鸟的博客。。。那么顺便说一下,system("Pause")是为了防止Visual Studio命令提示符闪一下就退出的代码,system函数包含于头文件#include<cstdlib>(或#include<stdlib.h>(C语言))中。