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

merge sort c++

VPS Starter Arubacloud
0 głosów
387 wizyt
pytanie zadane 18 października 2020 w C i C++ przez milosz123 Użytkownik (720 p.)

Witam uczę się programować i postanowiłem nauczyć się algorytmów sortowania kilku już się nauczyłem i dotarłem do kolejnego który jest już nieco trudniejszy, napisałem kod dla kilku przykładów działa, ale chciałem się upewnić czy napewno i czy może jest coś do poprawy oto kod:

#include <iostream>

using namespace std;

void scalanie(int *tab, int l, int p, int q) {

    int *pom = new int[p-l+1];
    int s = q + 1,k = 0,pocz = l;

    while (l <= q && s <= p) {
        if (tab[l] < tab[s]) {
            pom[k] = tab[l];
            l++;
        }
        else {
            pom[k] = tab[s];
            s++;
        }
        k++;
    }
    while (l <= q) {
        pom[k] = tab[l];
        l++;
        k++;
    }
    while (s <= p) {
        pom[k] = tab[s];
        s++;
        k++;
    }
    k = 0;
    for (int i = pocz; i <= p; i++)
        tab[i] = pom[k++];
}

void merge_sort(int *tab, int l, int p) {

    if (l != p) {
        int q = (l + p) / 2;
        merge_sort(tab,l,q);
        merge_sort(tab,q+1,p);
        scalanie(tab,l,p,q);
    }
}

int main()
{
    int n,l = 0,p;

    cin >> n;
    p = n - 1;

    int *tab = new int[n];

    for (int i = 0; i < n; i++) cin >> tab[i];
    merge_sort(tab,l,p);

    for (int i = 0; i < n; i++)
        cout << tab[i] << " ";

    cout << "\n";

    return 0;
}

 

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

Podobne pytania

0 głosów
1 odpowiedź 549 wizyt
0 głosów
1 odpowiedź 603 wizyt
pytanie zadane 7 marca 2020 w C i C++ przez TheFandorn Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 270 wizyt
pytanie zadane 13 kwietnia 2018 w C i C++ przez lambdag Obywatel (1,310 p.)

92,964 zapytań

141,929 odpowiedzi

321,162 komentarzy

62,298 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.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...