冒泡排序算法的改进:

简单改进:对于最好的情况,即数组本来就是有序的,再按照上述代码进行遍历,会浪费很多时间。故在此加入一个标志,如果本轮遍历未发生数据交换,就证明数组已然有序,直接结束循环

void bubbleSort2(int array[], int n)
{
//是否发生交换,即假定数组起初是有序的
int flag;
for (int i = 1; i < n; i++)
{
flag = 0;
//注意这里是n-i
for (int j = 0; j < n - i; j++)
{
if (array[j] > array[j + 1])
{
flag = 1;
int tmp = array[j];
array[j] = array[j + 1];
array[j + 1] = tmp;
}
}

if (flag == 0)
break;
}
}