C++ 将值直接从一个数组插入到另一个数组
因此,我要做的是将某些值从一个数组插入到另一个直接排序的数组中,而不必在以后使用BubbleSort、QuickSort或任何其他方法对它们进行排序。我想不出一个办法。。。我必须将它们从最大值插入最小值。以下是我到目前为止所拥有的: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
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是的,这就是我看到的问题。我看不到在不对原始数组排序的情况下使用选择排序。但是插入排序应该不同。