思路
一般的冒泡排序主要是比较和数据交换,一趟过后,把最大的数据排到最后,循环执行。有时在进行若干遍的遍历比较后,数据已经有序,再循环比较已经没有意义,而且消耗时间,这时候可以引入一个标志变量flag来处理,如果没有交换,就退出循环。
代码
void bubbleSort(int array[], int num)
{
int flag= 0;
int i = 0;
int j = 0;
int temp = 0;
for(j = num -1 ;j > 0;j--)
{
for(i = 0; i < j;++i)
{
if(array[i] > array[i+1])
{
temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
flag = 1;
}
}
//如果没有出现交换,那么就退出
if(flag == 0)
{
break;
}
flag = 0;
}
}