我到处查看,无论我找到什么算法(如果有的话,哈哈)在 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/