Ich habe eine Funktion, die zwei sortierte Arrays zu einem vereinigt und einen Zeiger darauf zurückgibt. Ich möchte eine for-Schleife statt einer Weile verwenden. In einigen Testfällen sind jedoch die letzten 1 oder 2 Elemente des Merge-Arrays nicht an ihrem Platz. Ich würde schätzen, wenn jemand helfen kann, dieses Problem zu lösen, das die for Schleife behält.Zusammenführen von zwei sortierten Arrays mit for-Schleife
int * mergeSort(int arr1[], int arr2[],int len)
{
/* len is the combined length of the two arrays */
static int sorted[100];
int pos1=0, pos2=0;
for (int i=0; i<len; i++)
{
if (arr1[pos1]<=arr2[pos2])
{
sorted[i]=arr1[pos1];
pos1++;
}
else
{
sorted[i]=arr2[pos2];
pos2++;
}
}
return sorted;
}
Wie gehen Sie damit um, dass Sie über das Ende der Eingabe-Arrays hinausgehen? – krzaq
Ich verstehe nicht, warum ich nach dem Ende gehen muss. Kannst du ein Beispiel mit 2 Arrays geben, an denen ich vorbei gehen würde? – SoloNasus
Sicher. '[1,2,3], [101,102,103]' – krzaq