首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以下气泡排序的实现有什么问题?

以下气泡排序的实现有什么问题?
EN

Stack Overflow用户
提问于 2016-09-25 06:47:11
回答 3查看 54关注 0票数 1

下面是我实现的冒泡排序,为什么输出不改变?输出与输入向量相同,而不是排序输出。

代码语言:javascript
复制
    #include<iostream>
    #include<vector>
    #include<algorithm>


    void bubble_sort(std::vector<int> &v){
        for( int i = 0; i < (v.size() - 1); i++){
            for( int j = 0; j < (v.size() - 1 - i) ; j++){
                if(v[i] < v[i+1]){
                    std::swap(v[i], v[i+1]);
                }
            }
        }

    }


int main(){
    std::vector<int> v = {1,9,8,7,6,5,3,2};
    bubble_sort(v);

    for(auto &e : v){
        std::cout<<e<<" ";
    }

    return 0;
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-09-25 06:48:50

在测试中,您使用的是i,而最有可能的是您希望使用j (因为i在该循环中是常量)。

票数 1
EN

Stack Overflow用户

发布于 2016-09-25 06:53:41

一种编译和正确工作的代码,用于按递增顺序排序向量。

代码语言:javascript
复制
#include<iostream>
#include<vector>
#include<algorithm>


void bubble_sort(std::vector<int> &v){
    for( int i = 0; i < (v.size() - 1); i++){
        for( int j = 0; j < (v.size() - 1 - i) ; j++){
            if ( v[j] > v[j+1] ){
                std::swap(v[j], v[j+1]);
            }
        }
    }

}

int main(){
    std::vector<int> v = {1,9,8,7,6,5,3,2};
    bubble_sort(v);

    for(auto &e : v){
        std::cout<<e<<" ";
    }

    return 0;
}
票数 0
EN

Stack Overflow用户

发布于 2016-09-25 07:04:29

,你只是想在第一个索引之间交换。有个问题,

代码语言:javascript
复制
#include<iostream>
#include<vector>
#include<algorithm>
void bubble_sort(std::vector<int> &v){
    for( int i = 0; i < (v.size() - 1); i++){
        for( int j = 0; j < (v.size() -1 - i) ; j++){
            if(v[j] > v[j+1]){
                std::swap(v[j], v[j+1]);
            }
        }
    }
}
int main(){
    std::vector<int> v = {1,9,8,7,6,5,3,2};
    bubble_sort(v);
    for(auto &e : v){
        std::cout<<e<<" ";
    }
    return 0;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39684194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档