Witam, mam do wykonania takie zadanie "Napisz program, który losuje 2 tablice n-elementowe , sortuje je dowolną metodą, która wykorzystuje metodę „quicksort", a następnie tworzy trzecią tablicę n-elementową,
składającą się z uporządkowanych n najmniejszych liczb z dwóch pierwszych tablic". Mianowicie mam napisana taka część kodu, ze wyświetla tylko jedna tablice posortowana, a reszty już nie. Macie pomysł jak to uzupełnić?
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
const int N=20;
void Losuj (int A[])
{
for (int i=0;i<N;i++)
A[i]=1+rand () % 99;
}
void Wypisz (int A[])
{
for (int i=0;i<N;i++)
{
cout <<A[i] <<" ";
}
{
cout<<endl;
}}
void Merge(int A[], int p, int s, int k)
{
int i=p, j=s+1, m=p;
int B[N];
while (i<=s && j<=k)
{
if (A[i]<A[j])
{
B[m]=A[i]; i++;
}
else
{
B[m]=A[j]; j++;
}
m++;
}
while (i<=s)
{
B[m]=A[i]; i++;m++;
}
while (j<=k)
{
B[m]=A[j]; j++;m++;
}
for (i=p;i<=k; i++) A[i]=B[i];
}
void MergeSort(int A[], int p, int k)
{
if (p<k)
{
int s=(p+k)/2;
MergeSort(A,p,s);
MergeSort(A,s+1,k);
Merge(A,p,s,k);
}
}
void Quicksort (int A[], int p, int k)
{
int i=p, j=k, m =A[(p+k)/2];
while (i<=j)
{
while (A[i] <m) i++;
while (A[j]>m) j--;
if (i<=j)
{
swap (A[i],A[j]);
i++;j--;
}
}
if (p<j) Quicksort (A, p, j);
if (i<k) Quicksort (A, i, k);
}
int main()
{
int A[N];
srand (time (NULL));
Losuj (A);
Wypisz (A);
MergeSort(A,0,N-1);
Merge(A,0,N-1,0);
Quicksort(A,0,N-1);
Wypisz (A);
return 0;
}