首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++向量插入排序算法方法-将向量传递到方法

C++向量插入排序算法方法-将向量传递到方法
EN

Stack Overflow用户
提问于 2011-04-19 06:28:48
回答 2查看 15.5K关注 0票数 2

我到处寻找,无论我在c++中找到什么算法(如果有的话)对向量进行插入排序,它都不起作用,所以我假设它与我的代码有关。有没有人能帮我找到一种方法,我可以把一个向量作为参数传递给一个方法,然后对它进行插入排序?此时,它会等待几秒钟,并显示所有未排序的值:(

插入排序代码

代码语言:javascript
复制
void insertionSort (vector<int> data, int n) 
{
int i, j, tmp;

 for (i=1; i<n; i++)
 {
     j=i;
     tmp=data[i];
     while (j>0 && tmp<data[j-1])
     {
           data[j]=data[j-1];
           j--;
     }
     data[j]=tmp;
 }

代码的重要部分

代码语言:javascript
复制
        cout << "insertion sort" << endl;
        system("pause");
        insertionSort(numberVectors, i);

让我知道,如果你不认为有任何错误的代码,你想让我向你展示更多,应该只是这一点,其他东西是无关的,我认为

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-19 06:32:17

您的函数通过值接受其参数;这意味着它将获得一个副本。你对副本进行排序,但这是徒劳的。

改为引用:

代码语言:javascript
复制
void insertionSort (vector<int>& data, int n) 
票数 9
EN

Stack Overflow用户

发布于 2011-04-19 06:32:52

通过引用传递数组,函数中的更改将反映在该数组上

代码语言:javascript
复制
void insertionSort (vector<int> &data, int n) 
{
   ...
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5709637

复制
相关文章

相似问题

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