Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将值直接从一个数组插入到另一个数组_C++_Sorting_Vector - Fatal编程技术网

C++ 将值直接从一个数组插入到另一个数组

C++ 将值直接从一个数组插入到另一个数组,c++,sorting,vector,C++,Sorting,Vector,因此,我要做的是将某些值从一个数组插入到另一个直接排序的数组中,而不必在以后使用BubbleSort、QuickSort或任何其他方法对它们进行排序。我想不出一个办法。。。我必须将它们从最大值插入最小值。以下是我到目前为止所拥有的: void palindroame (int x[100], int y[100]) { int i=0, j, k=0, aux; while (x[i]!=0) { k++; i++; } i=0; fo

因此,我要做的是将某些值从一个数组插入到另一个直接排序的数组中,而不必在以后使用BubbleSort、QuickSort或任何其他方法对它们进行排序。我想不出一个办法。。。我必须将它们从最大值插入最小值。以下是我到目前为止所拥有的:

void palindroame (int x[100], int y[100]) {
    int i=0, j, k=0, aux;
    while (x[i]!=0) { 
        k++; i++; 
    }
    i=0;
    for (i=0; i<=k-1; i++) y[i]=0;
    for (i=0; i<=k-1; i++) { 
        if (palindrom(x[i])!=0 && palindrom(x[i+1])!=0) 
            if (x[i]<x[i+1]) { 
                aux=x[i+1]; x[i+1]=x[i]; x[i]=aux; 
            } 
    } //wrong
    for (i=0; i<=k-1; i++) { 
        if (palindrom(x[i])) y[i]=x[i]; 
    } //wrong
}
void回文(int x[100],int y[100]){
int i=0,j,k=0,aux;
而(x[i]!=0){
k++;i++;
}
i=0;

对于(i=0;i您可以查看优先级队列:


您可以查看优先级队列:


你需要的算法是,你可以用它同时排序和复制。

你需要的算法是,你可以用它同时排序和复制。

这是我最近做的一个选择排序的例子(其中a是向量)

应该给你足够的时间继续下去,希望能有所帮助,如果你愿意,可以问问题

for (unsigned int i = 0; i < a.size()-1; i++)
{
    int min = i;

    for(unsigned int j = i +1; j < a.size(); j++)
    {
        // If new minimum is found then stores this as the new minimum
        if(a[j] < a[min])
        {
            min = j;
        }
    }
    // Stores the values in the array in ascending order
    if (min != i)
    {
        int temp = a[i];
        a[i] = a[min];
        a[min] = temp;
    }
}
// Returns the array in ascending order
return a;
for(无符号int i=0;i

编辑:为了澄清这一点,我正在处理一个向量,该向量中已经有值,以防不清楚,但我认为带有代码注释的示例足以帮助您IMO

以下是我最近完成的一个选择排序示例(其中a是一个向量)

应该给你足够的时间继续下去,希望能有所帮助,如果你愿意,可以问问题

for (unsigned int i = 0; i < a.size()-1; i++)
{
    int min = i;

    for(unsigned int j = i +1; j < a.size(); j++)
    {
        // If new minimum is found then stores this as the new minimum
        if(a[j] < a[min])
        {
            min = j;
        }
    }
    // Stores the values in the array in ascending order
    if (min != i)
    {
        int temp = a[i];
        a[i] = a[min];
        a[min] = temp;
    }
}
// Returns the array in ascending order
return a;
for(无符号int i=0;i

编辑:为了澄清这一点,我们正在处理一个向量,该向量中已经有值,以防不清楚,但我认为带有代码注释的示例足以帮助您IMO

这两个数组(您使用的是数组,而不是向量)都是从排序开始的吗?嗯,第一个数组没有排序(x),第二个数组没有排序(y)填充了0。从未排序的数组中复制值以使其排序。另一个数组是排序。你的问题没有多大意义。这就像说我想要排序的值而不进行排序。你必须以这种或那种方式进行排序。我知道,我试着尽可能地解释,这实际上是一个考试练习我将在几天内完成…我要做的是从一个数组中获取某些值,然后将它们从最大到最小插入到另一个数组中,而不必在插入后对它们进行排序,我希望您理解我试图解释的内容xD@IcebirdRo您需要的算法是选择排序。您可以使用该算法同时进行排序和复制。您是bo吗th数组(您使用的是数组而不是向量)以排序开始?嗯,第一个数组没有排序(x),第二个数组没有排序(y)填充了0。从未排序的数组中复制值以使其排序。另一个数组是排序。你的问题没有多大意义。这就像说我想要排序的值而不进行排序。你必须以这种或那种方式进行排序。我知道,我试着尽可能地解释,这实际上是一个考试练习我将在几天内完成…我要做的是从一个数组中获取某些值,然后将它们从最大到最小插入到另一个数组中,而不必在插入后对它们进行排序,我希望您理解我试图解释的内容xD@IcebirdRo您需要的算法是选择排序。您可以使用它同时进行排序和复制。@ICEIrdRo不想这么说,但我认为这个答案不正确。你真的想要插入排序,我只是尝试了一下,它成功了,但我必须对x进行排序…但它没有说任何地方不允许我排序,它只是说不允许我对y进行排序。我也会尝试插入排序,谢谢!@IcebirdRo是的,这是我看到的问题。我不知道“我看不出在不对原始数组排序的情况下使用选择排序。但是插入排序应该是不同的。@IcebirdRo不想这么说,但我认为这个答案不正确。你实际上想要插入排序,我只是尝试了一下,但它起了作用,我必须对x排序……但它没有说任何地方不允许我对其排序,它只是这么说。”我不允许对y进行排序。我也会尝试使用插入排序,谢谢!@IcebirdRo是的,这就是我看到的问题。我看不到在不对原始数组排序的情况下使用选择排序。但是插入排序应该不同。