冒泡排序改进版

来源:互联网 发布:sql server 笛卡尔积 编辑:程序博客网 时间:2024/06/07 06:15

思路

一般的冒泡排序主要是比较和数据交换,一趟过后,把最大的数据排到最后,循环执行。有时在进行若干遍的遍历比较后,数据已经有序,再循环比较已经没有意义,而且消耗时间,这时候可以引入一个标志变量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;    }}
0 0
原创粉丝点击