• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

sortowanie quicksort i mergesort

0 głosów
288 wizyt
pytanie zadane 15 listopada 2022 w C i C++ przez ijoasia Nowicjusz (120 p.)

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;
}

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 786 wizyt
pytanie zadane 28 marca 2020 w C i C++ przez wall7489 Obywatel (1,280 p.)
0 głosów
2 odpowiedzi 1,153 wizyt
0 głosów
2 odpowiedzi 1,230 wizyt
pytanie zadane 24 czerwca 2018 w C i C++ przez siemasiema123.96 Początkujący (350 p.)

93,742 zapytań

142,680 odpowiedzi

323,299 komentarzy

63,328 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...