zoukankan      html  css  js  c++  java
  • 排序算法之——冒泡排序优化

    冒泡排序优化算法思想:我们通过在程序定义了一个bool类型的flag变量,用来判断往后的循环当中,数组是否已经是有序的,每一轮循环都会设置其值为true,当有元素对调位置时,就将flag的值设置为true,表示该数组还不是有序数组。每一轮都要判断flag的值,如果判断当前一轮操作没有元素有位置调换,那么可以提前结束所有的循环。

    void bubble_sort(int* a,int sz)
    {
        int i, j;
        if (a == NULL)
            return;
        int temp = 0;
        int flag = true;  //用来标记是否存在数据位置的转换
        for (i = 1; i < sz&&flag; ++i)  //控制循环比较的次数
        {
            flag = false;
            for (j = sz - 1; j >= i; --j)  
            {
                if (a[j] < a[j - 1])
                {
                    temp = a[j];
                    a[j] = a[j - 1];
                    a[j - 1] = temp;
                    flag = true;
                }
            }
        }
    }
    
    int main()
    {
        int arr[] = { 4, 6, 5, 8, 9, 3, 2, 1, 7 };
        int size = sizeof(arr) / sizeof(int);
        bubble_sort(arr, size);
        for (int i = 0; i < size; i++)
        {
            cout << arr[i] << " ";
        }
        cout << endl;
        return 0;
    }
  • 相关阅读:
    python解析网页
    node.js 爬虫
    c++ split实现
    foldl foldr
    爬虫http header gzip
    命令[10]
    命令[08]
    命令[15]
    命令[13]
    命令[11]
  • 原文地址:https://www.cnblogs.com/single-dont/p/11317553.html
Copyright © 2011-2022 走看看