- 将有序数组分为有序无序两个部分。前者在右,后者在左
- 开始整个数组都是无序的,有序部分没有元素
- 每次都要使无序部分的最大元素移动到有序部分第一个元素的左边移动的方法是:依次比较相邻的两个元素,如果前面的比后面的大就交换他们的位置。这样大的元素就像水里的气泡一样不断上浮。移动结束有序部分增加了一个元素。
- 直到无序部分没有元素
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 temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}