冒泡排序,毋庸置疑就是像小鱼吐泡泡一样,把泡泡送出去
一句话玩转冒泡:将第i位冒泡到j-i区域然后泡泡炸开,把数放里面
下面代码中,flag是为了当数组已经排序完成后,如果遍历一遍,没有交换则不把flag置为一则证明排序完成。
void BubbleSort(DataType a[], int n)
{
int i, j, flag = 1;
DataType temp;
for(i = 1; i < n && flag == 1; i++)
{
flag = 0; //flag中途结束判断的标志
for(j = 0; j < n-i; j++)
{
if(a[j].key > a[j+1].key)
{
flag =1;
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}