常用算法之冒泡排序

冒泡排序就是依次比较相邻的元素,比较n趟(n为数组大小),没每趟找到一个最大的放到末尾,类似于水泡,小的元素慢慢向上浮动,大的向下,代码如下:

void sortBubble(vector<int> &arr)
{
    for (int i = 0; i<arr.size(); i++)
    {
        bool flag = false;
        for (int j = 0; j<arr.size()-1-i; j++)
        {
            if (arr[j]>arr[j+1])
            {
                flag = true;
                int tmp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = tmp;
            }
        }
        if (!flag)
        {
            //如果有一趟发现无需调换了,则不需要接下来的对比了
            //flag 起作用了,提前结束;
            break;
        }
    }
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注