Posortować tablicę przez mergesort w istniejącym kodzie

0

Cześć
Potrzebuję w tym kodzie posortować tablicę przez mergesort

#include <iostream>
#include <algorithm>

using namespace std;

long long A[1000000],B[1000000];

int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n,ilosc=0;
cin>>n;
for (int i=0;i<n;i++) cin>>A[i];
for(int i=0;i<n-1;i++) for(int j=i+1;j<n;j++) if(A[i]>A[j]) ilosc++;
sort(A, A + n);
for (int i=0; i<n; i++) cout << A[i]<<" ";
cout<<'\n'<<ilosc;
return 0;
}

Czy ktoś mógłby mi pomóc?

0

Z czym masz problem?
Kod umieść w odpowiednich znacznikach i sformatuj. Możesz się wspomóc np. tym narzędziem: http://format.krzaq.cc/

0
#include <iostream>
#include <algorithm>

using namespace std;

long long A[1000000], B[1000000];

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int n, ilosc = 0;
    cin >> n;
    for (int i = 0; i < n; i++)
        cin >> A[i];
    for (int i = 0; i < n - 1; i++)
        for (int j = i + 1; j < n; j++)
            if (A[i] > A[j])
                ilosc++;
    sort(A, A + n);
    for (int i = 0; i < n; i++)
        cout << A[i] << " ";
    cout << '\n' << ilosc;
    return 0;
}

long long mergesort(int* a, int* b, int p, int r)
{
    long long ilosc = 0;
    if (p == r)
        return ilosc;
    int q = (p + r) / 2;
    ilosc += mergesort(a, b, p, q);
    ilosc += mergesort(a, b, q + 1, r);
    ilosc += merge(a, b, p, q, r);
    return ilosc;
}

Czegoś cały czas brakuje...

1

Użyj debuggera albo napisz gdzie leży problem.

Czegoś cały czas brakuje...

Zacny tekst.

0

Ja bym powiedział, że brakuje wywołania funkcji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1