1.将整个数组a分为有序的部分和无序的两个部分。前者在右,后者在左边。 2.开始,整个数组都是无序的。有序的部分没有元素。 3.每次要使得无序部分最大的元素移动到有序部分第一个元素的左边。移动的方法是:依次比较相邻的两个元素,如果前面的比后面的大,就交换他们的位置。这样,大的元素就像水里气泡一样不断往上浮。移动结束有序部分增加了一个元素。 4.直到无序的部分没有元素

void BubbleSort(int a[], int size)
{
for (int i = size - 1; i > 0; –i) {
//每次要将未排序部分的最大值移动到下标i的位置
for(int j = 0; j < i; ++j) //依次比较相邻的两个元素
if( a[j] > a[j+1])
{
int tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp;
}
}
}