美文网首页
冒泡排序

冒泡排序

作者: 华灯初上月影重 | 来源:发表于2019-02-16 21:09 被阅读0次

算法思路:


比较两个相邻的元素,将值大的元素交换至右端。
依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。

程序实现:


void sAlgorithm::bubbleSort(std::vector<int>& outData)
{
    int num = outData.size();
    for (int i = 0; i < num - 1; i++)// 经典的冒泡法
    {
        int flag = i;
        int data = outData[i];
        for (int k = i + 1; k < num; k++)
        {
            if (outData[k] < outData[i])
            {
                flag = k;
                outData[i] = outData[k];
            }       
        }
        if (flag != i) {
            outData[i] = outData[flag];
            outData[flag] = data;
        }
    }
    return;
}

测试结果:


原序列数据:86 68 33 10 97 80 57 22 63 41
冒泡排序后:10 22 33 41 57 63 68 80 86 97

相关文章

网友评论

      本文标题:冒泡排序

      本文链接:https://www.haomeiwen.com/subject/qauieqtx.html