冒泡排序

void bubbleSort(int arr[], const int n)
{
    int i, j;
    i = j = 0;
    //每次一趟交换出一个最大的数字来到尾部,所以有n-1趟
    //每一趟要比较决定是否交换,相邻元素交换的那种交换

    bool stop = false;
    for (i = 1; i <= n - 1; i++)
    {
        stop = true;
        //注意:需要不断缩小范围才对,因为每次交换的都是往尾部的某个位置摆放
        for (j = 0; j <= n - 1 - i; j++)
        {
            if (arr[j] > arr[j + 1])
            {
                std::swap(arr[j], arr[j + 1]);
                stop = false;
            }
        }
        if (stop) break;
    }
}

全部评论

相关推荐

04-11 22:26
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务