Zrozumienie sensu zadania

Zrozumienie sensu zadania
B2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 68
0

Cześć, jak rozumiecie to zadanie, głównie chodzi o pogrubioną część :
Napisz funkcję, która w argumencie będzie miała tablicę z liczbami całkowitymi oraz inne
niezbędne argumenty. Funkcja ma wykonać sortowanie liczb metodą bąbelkową (nie używaj
gotowych funkcji bibliotecznych, np. sort(...)). Funkcja powinna zwracać sumę wszystkich operacji
dominujących w sortowaniu.

MasterBLB
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1454
0

Wprawdzie nie rozumiem, co to na Swaroga jest suma operacji dominujących, ale jakiś czas temu przy okazji pomocy innemu użytkownikowi stworzyłem implementację sortowania bąbelkowego.

rrowniak
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 82
0

Podejrzewam, że chodzi o liczbę wszystkich operacji, które jako argumenty przyjmują wartości z tablicy na wejściu. Czyli może chodzić o porównanie dwóch elementów i ich zamianę. Wtedy będziesz mógł oszacować złożoność obliczeniową swojego algorytmu, co w Twoim przypadku powinno dać O(n^2), czyli liczba takich operacji powinna być w zależności kwadratowej do liczby elementów w tablicy (w sensie asymptotycznym).

MasterBLB
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1454
0

Bracie @Bartek24, najlepiej dopytaj profesora co miał na myśli, bo inaczej jedyne co mamy to przypuszczenia.

B2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 68
0
rrowniak napisał(a):

Podejrzewam, że chodzi o liczbę wszystkich operacji, które jako argumenty przyjmują wartości z tablicy na wejściu. Czyli może chodzić o porównanie dwóch elementów i ich zamianę. Wtedy będziesz mógł oszacować złożoność obliczeniową swojego algorytmu, co w Twoim przypadku powinno dać O(n^2), czyli liczba takich operacji powinna być w zależności kwadratowej do liczby elementów w tablicy (w sensie asymptotycznym).

Racja,to chyba by tylko miało sens haha, a moglbys ewentualnie wskazac blad w tym kodzie? sortuje poprawnie ale licznik nie działa

Kopiuj
#include <iostream>

using namespace std;

int bubble_sort(int tab[], int n){
    int licznik=0;
    for(int i=1; i<n; i++){
        for(int j=n-1; j>=1; j--){
            if(tab[j]<tab[j-1]){
                int buffor;
                licznik++;
                buffor=tab[j-1];
                tab[j-1]=tab[j];
                tab[j]=buffor;
            }
        }
    }
    return licznik;
}
void wczytaj(int tablica[], int n){
    for(int i=0; i<n; i++){
        cout<<"Podaj liczbe: ";
        cin>>tablica[i];
    }
}
void wyswietl(int tablica[], int n){
    for(int i=0; i<n; i++){
        cout<<tablica[i]<< ", ";
    }
}
int main()
{
    const int MAX = 1000;
    int tablica[MAX], n;
    cout<<"ile liczb chcesz wprowadzic: ";
    cin>>n;
    wczytaj(tablica, n);
    bubble_sort(tablica, n);
    wyswietl(tablica,n);
    cout<<endl;
    cout<<"ilosc obliczen: "<<bubble_sort(tablica,n);
    return 0;
}

B2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 68
0
Kopiuj
#include <iostream>

using namespace std;

int bubble_sort(int tab[], int n){
    int licznik=0;
    for(int i=1; i<n; i++){
        for(int j=n-1; j>=1; j--){
            if(tab[j]<tab[j-1]){
                int buffor;
                buffor=tab[j-1];
                tab[j-1]=tab[j];
                tab[j]=buffor;
                licznik++;
            }
        }
    }
    return licznik;
}
void wczytaj(int tablica[], int n){
    for(int i=0; i<n; i++){
        cout<<"Podaj liczbe: ";
        cin>>tablica[i];
    }
}
void wyswietl(int tablica[], int n){
    for(int i=0; i<n; i++){
        cout<<tablica[i]<< ", ";
    }
}
int main()
{
    const int MAX = 1000;
    int tablica[MAX], n,zlozonosc;
    cout<<"ile liczb chcesz wprowadzic: ";
    cin>>n;
    wczytaj(tablica, n);
    zlozonosc = bubble_sort(tablica, n);
    cout<<zlozonosc<<endl;;
    //wyswietl(tablica,n);
    return 0;
}

no okej ale nawet biorąc pod uwage wskaane przez was błędy funkcja zwraca złą złożoność, przykladowo dla tablicy 5 elementowej zwraca5 a dla cztery 3 itpp

PR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 316
0

Zdajesz sobie sprawę że ta funkcja zwraca liczbę przestawień? Jak byś wrzucił posortowaną tablicę to by było 0

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.