冒泡排序

来源:互联网 发布:系统之家windows vista 编辑:程序博客网 时间:2024/05/16 07:20

临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,
这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束。时间复杂度O(n^2)

int bubble_sort(int arr[], int lenght){    int flag = 1;//标记一次遍历没有发生移位,排序完毕    if (arr == NULL || lenght == 0)    {        return;    }    for (int i = lenght - 1; i >= 1 && flag; --i)    {        flag = 0;        for (int j = 0; j < i; ++j)        {            if (arr[j] > arr[j + 1])            {                int temp = arr[j];                arr[j] = arr[j + 1];                arr[j + 1] = temp;                if (flag == 0)                {                    flag = 1;                }            }        }    }}
0 0
原创粉丝点击