原理:从序列的左端开始,相邻的项两两比较,将大的元素逐渐放到后面,第一趟迭代最大 的元素会被放到最后项,以此类推
代码:
#include <iostream>
#include <algorithm>
using namespace std;
void Bubble_sort(int* a, int left, int right)
{
for (int i = left; i <= right; ++i)
{
for (int j = i; j <= right - i-1; ++j)
{ //每次迭代大的元素的位置已经排好,所以比较的次数没次迭代-1
if (a[j] > a[j+1])
std::swap(a[j], a[j+1]);
}
}
}
int main(int argc, char** argv)
{
int a[5] = { 2,1,4,3,5 };
Bubble_sort(a, 0, 4);
for (int i = 0; i <= 4; i++)
{
cout << a[i] << " ";
}
return 0;
}
结果:1 2 3 4 5