Was ist der C-Code zum Zusammenführen von zwei unsortierten Arrays ohne Verwendung eines dritten Arrays. ZB array1 = {1,3,5,7} array2 = {2,4,6} Der Ausgang sollte array1 = {1,2,3,4,5,6,7} sein.Zusammenführung von zwei Arrays ohne Verwendung eines 3. Arrays
Dies ist der Code, den ich geschrieben habe. Aber das funktioniert nicht, wenn die Anzahl der Array-Elemente in beiden Arrays identisch sind. Helfen Sie mir bei der Behebung dieses Fehlers.
void merge(int a[],int b[],int ele1,int ele2)
{
int i,j,k,ele3;
ele3=ele1+ele2;
for(i=1,k=0;k<ele2;i=i+2)
{
j=ele1;
while(j>=i)
{
a[j]=a[j-1];
j--;
}
a[j+1]=b[k];
k++;ele1++;
}
for(i=0;i<ele3;i++)
printf("%d ",a[i]);
}
main()
{
int a[]={1,3,5},b[]={2,4},ele1,ele2;
ele1=sizeof(a)/sizeof(a[0]); ele2=sizeof(b)/sizeof(b[0]);
merge(a,b,ele1,ele2);
}
Hat jemand die ersten 2-Arrays ausreichend Platz haben, zu halten? –
Nichts ist in der Frage erwähnt. Dies war eine Interviewfrage, die ich bekam. Sie sagten alles, was ich wünsche, wenn ich fragte, ob es Speicher gibt. –
Sie sagen unsortierte Arrays, aber das angegebene Beispiel ist für sortierte Arrays. –