【发布时间】:2013-04-09 10:14:25
【问题描述】:
所以我要做的就是将某些值从一个数组插入到另一个直接排序的数组中,而无需稍后使用 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
}
提前致谢!
【问题讨论】:
-
两个数组(你使用的是数组而不是向量)开始排序了吗?
-
嗯,第一个数组没有排序(x),第二个(y)用0填充
-
从一个未排序的数组中复制值,以便它们在另一个数组中排序 is 排序。你的问题没有多大意义。这就像说我想要排序的值而不进行排序。您将不得不以一种或另一种方式进行排序。
-
我知道,我尽力解释了,这实际上是我几天后参加的考试的练习......我要做的是从一个数组中获取某些值并从大到小将它们插入另一个中,而无需在插入后对其进行排序,希望您能理解我要解释的内容xD
-
@IcebirdRo 您需要的算法是选择排序。 en.wikipedia.org/wiki/Selection_sort,你可以用它同时排序和复制。