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

Nie rozumiem dokładnie działania kodu, który dotyczy sortowania

Object Storage Arubacloud
0 głosów
261 wizyt
pytanie zadane 3 grudnia 2020 w C i C++ przez Uczeń123 Nowicjusz (170 p.)

Hejka!  Nie wiem, czy to nie podchodzi pod tego "gotowca", to chyba moje 3 pytanie na forum, jeśli przesadziłem to przepraszam :/. Mam tutaj taki kod, którego działania nie jestem w stanie do końca pojąć. Jest w nim fragment, którego zwyczajnie nie jestem w stanie sobie zwizualizować. Oto kod:

#include <iostream>
#include <ctime>

using namespace std;

int main()
{
    srand(time(NULL));

    int t[30];
    for (int i=0;i<30;i++)
    t[i]=rand()%301;
    cout << "Tablica przed sortowaniem:  "<<endl;
    for (int i=0;i<30;i++)
    cout<<t[i]<<"  ";
    cout<<endl;

    for (int i=0;i<30;i++)
    {
        int x=i; //odtąd zaczynają się rzeczy, których nie pojmuję w pełni
        for (int y=i;y<30;y++)  
        {
            if(t[y]<t[x])
            x=y;
        }
        swap(t[x],t[i]); //a tutaj się kończą ^-^
    }
cout<<endl;
cout<<"Tablica po sortowaniu rosnaco:"<<endl;
    for (int n=0;n<30;n++)
cout<<t[n]<<"  ";

cout<<endl;

    return 0;
}

Szczerze to pogubiłem się w pętlach i robiłem aż uzyskałem efekt metodą prób i błędów. Tyle że fajnie byłoby też rozumieć co się napisało. Nie wiem, chyba nie mogę załapać o co chodzi w tym wypadku, gdy jedna zmienna równa się drugiej zmiennej, a nie 0 albo 1 hahah (zamieniają się po całości? Taki był zamysł, ale nie wiem, czy to nie jakiś cheat wskoczył).  Proszę o rozjaśnienie mi sytuacji, będę bardzo wdzięczny. Z góry dziękuję i pozdrawiam ^-^

1 odpowiedź

+1 głos
odpowiedź 3 grudnia 2020 przez wojtek_suchy Mądrala (6,880 p.)
wybrane 3 grudnia 2020 przez Uczeń123
 
Najlepsza

To co napisałeś to przekombinowany Bubble Sort

Wystarczy że wpiszesz tą frazę w Google i masz pełno poradników, filmów, implementacji w różnych językach tej techniki sortowania.

komentarz 3 grudnia 2020 przez Uczeń123 Nowicjusz (170 p.)
Tak nawiasem mówiąc to wiem, że to Bubble Sort. Pragnę wiedzieć gdzie dokładnie został przekombinowany i w jaki sposób, bo może dobrze myślę (w co wątpię), a chciałbym być pewien. W tym co znalazłem w internecie są metody, które odrobinkę różnią się od tego i nie mogę rozwiać moich niepewności z samych poradników. Potrzebuję, żeby ktoś doświadczony rzucił na to okiem opisał nawet z grubsza, co dzieje się we fragmencie, w którym mam problem. Dlatego napisałem na forum, wcześniej próbowałem działać na własną rękę i w sumie nadal działam.
1
komentarz 3 grudnia 2020 przez wojtek_suchy Mądrala (6,880 p.)

Został przekombinowany tutaj:

    for (int i=0;i<30;i++)
    {
        int x=i; //odtąd zaczynają się rzeczy, których nie pojmuję w pełni
        for (int y=i;y<30;y++)  
        {
            if(t[y]<t[x])
            x=y;
        }
        swap(t[x],t[i]); //a tutaj się kończą ^-^
    }

zamiast tego wystarczy:

    for (int i = 0; i < 30; i++){
        for (int j = i; j < 30; j++){
            if (t[i] > t[j])
                swap(t[i], t[j]);
        }
    }

idziesz przez tablice 30razy, za każdym razem znajdujesz element który powinien znajdować się w tym miejscu tablicy, użyj degubbera żeby to sobie lepiej zobrazować lub wypisuj przy każdej iteracji jak wygląda tablica

komentarz 3 grudnia 2020 przez Uczeń123 Nowicjusz (170 p.)
Dziękuję serdecznie! Myślę, że teraz lepiej to rozumiem.

Podobne pytania

0 głosów
1 odpowiedź 122 wizyt
pytanie zadane 7 czerwca 2017 w C i C++ przez pimpek Użytkownik (680 p.)
0 głosów
2 odpowiedzi 1,859 wizyt
pytanie zadane 25 października 2019 w C i C++ przez j4nsk Nowicjusz (160 p.)
+1 głos
4 odpowiedzi 298 wizyt
pytanie zadane 4 stycznia 2022 w C# przez niezalogowany

92,550 zapytań

141,394 odpowiedzi

319,522 komentarzy

61,935 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...