C++ vector 插入排序算法方法——将 vector 传给方法

标签 c++ vector insertion-sort

我到处查看,无论我找到什么算法(如果有的话,哈哈)在 C++ 中对 vector 进行插入排序,它都行不通,所以我假设它与我的代码有关。谁能帮我找到一种方法,我可以将 vector 作为参数传递给方法,然后对其进行插入排序?目前它等待几秒钟并显示所有未排序的值:(

插入排序代码

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;
 }

代码的重要部分

        cout << "insertion sort" << endl;
        system("pause");
        insertionSort(numberVectors, i);

如果您认为该代码没有任何问题并且希望我向您展示更多内容,请告诉我,不过我认为其他内容无关紧要

谢谢

最佳答案

您的函数按值接受它的参数;这意味着它得到了一份拷贝。你徒劳地整理拷贝。

改为将其更改为引用:

void insertionSort (vector<int>& data, int n) 

关于C++ vector 插入排序算法方法——将 vector 传给方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5709637/

相关文章:

c++ - 为不同的输出目录生成 GCC 依赖项

c# - 查找图像上的区域 - 自动旋转图像 OpenCv

c++ - 有没有办法通过逆向工程来恢复结构。指向该结构的指针由 DLL 中唯一用于导出的函数返回

c++ - 尝试删除最后一个 std::vector 元素时程序崩溃

C++ 模板函数,可以采用 Eigen::vector 或 std::vector

c++ - 我的逻辑有什么问题?我的 Vector 或对象不会 push_back 新对象。保持大小为 0

c - 插入排序的流程

c++ - `std::enable_if` 是函数指针——怎么样?

sorting - 什么类型的输入区分插入排序和选择排序?

java - 这是插入排序还是冒泡?