C++;向量插入排序算法方法-将向量传递到方法 我到处寻找,并且不管我发现的任何算法(如果有LOL)都在C++中插入向量,它不会工作,所以我假设它与我的代码有关系。有谁能帮我找到一种方法,把一个向量作为参数传递给一个方法,然后对它进行插入排序?此时,它会等待几秒钟,并显示所有未排序的值:(

C++;向量插入排序算法方法-将向量传递到方法 我到处寻找,并且不管我发现的任何算法(如果有LOL)都在C++中插入向量,它不会工作,所以我假设它与我的代码有关系。有谁能帮我找到一种方法,把一个向量作为参数传递给一个方法,然后对它进行插入排序?此时,它会等待几秒钟,并显示所有未排序的值:(,c++,vector,insertion-sort,C++,Vector,Insertion Sort,插入排序码 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

插入排序码

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;
 }
void insertionSort(向量数据,int n)
{
int i,j,tmp;

对于(i=1;i0&&tmp,您的函数按值接受其参数;这意味着它将获得一个副本。您对副本进行排序是徒劳的

将其改为引用:

void insertionSort (vector<int>& data, int n) 
void insertionSort(向量和数据,整数n)

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

void insertionSort (vector<int> &data, int n) 
{
   ...
}
void insertionSort(向量和数据,整数n)
{
...
}

我所做的一切……总是有一个简单的解决方案,非常感谢你,非常感谢你,现在可以继续,这是困扰我很久的问题:)而且,如果
n
只是
data
中的元素数,那么你甚至不需要它,因为你可以调用
data.size()
找出有多少个元素。最好是将您的函数作为模板。
void insertionSort (vector<int> &data, int n) 
{
   ...
}