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

Kurs C++ odc. 14: Sortowanie. Złożoność algorytmów Pana Zelenta

Object Storage Arubacloud
0 głosów
826 wizyt
pytanie zadane 6 września 2017 w C i C++ przez Daniel13 Początkujący (250 p.)

Witam,

Jestem w 19 minucie filmu kursu C++ odc 15 link: https://youtu.be/LKiaoV86iJo?t=19m47s.

Mam problem z sortowaniem. Gdy wklejam pętle "przed sortowaniem" wyświetlają mi się liczby nieposortowane. Natomiast gdy po "sortowanie_babelkowe" wklejam pętle "po sortowaniu" to liczby zarowno "przed sortowaniem" jak i " po sortowaniu"  są posortowane. Mam nadzieję, że zrozumiale napisałem, ale wklejam poniżej kod i będzie wszystko jasne:

#include <iostream>
#include <time.h>
#include <windows.h>

using namespace std;
int ile;
clock_t start,stop;
double czas;
void sortowanie_babelkowe(int *tab, int n)
{
    for(int i=1; i<n; i++)
    {
        for(int j=n-1; j<=1; j--)
        {
            if (tab[j]<tab[j-1])
            {
                int bufor;
                bufor=tab[j-1];
                tab[j-1]=tab[j];
                tab[j]=bufor;
            }
        }
    }
}
int main()
{
    cout << "Porownanie czasu sortowania v.1" << endl;
    cout<<"Ile losowych liczb w tablicy: ";
    cin>>ile;

    //dynamiczna alokacja tablicy
    int *tablica;
    tablica=new int [ile];

// inicjowanie generatora
    srand(time(NULL));

    //wczytywanie losowych liczb do tablicy
    for(int i=0; i <ile; i++)
    {
        tablica[i] = rand()%100000+1;
        //cout<<tablica[i]<<" ";
    }
    cout<<"Przed posortowaniem: "<<endl;
    for(int i=0; i <ile; i++)
    {

        cout<<tablica[i]<<" ";
    }

    cout<<"Sortuje teraz babelkowo. Prosze czekac!"<<endl;
    start = clock();

    sortowanie_babelkowe(tablica,ile);

    stop = clock();

    czas = (double)(stop-start) / CLOCKS_PER_SEC;

// jak nie wklejam ponizszej petli to mam liczby nie posortowane
    cout<<"Po posortowaniu: "<<endl;
    for(int i=0; i <ile; i++)
    {

        cout<<tablica[i]<<" ";
    }

    cout<<endl<<"Czas sortowanie babelkowego: "<<czas<<" s"<<endl;


    delete [] tablica;
    return 0;
}

 

Proszę o wskazówkę co źle robię.

Pozdrawiam,

Daniel 

1 odpowiedź

0 głosów
odpowiedź 6 września 2017 przez januszprogramowania Bywalec (2,840 p.)
wybrane 7 września 2017 przez Daniel13
 
Najlepsza

Błąd masz tutaj:

for(int j=n-1; j<=1; j--)

powinno być:

for(int j=n-1; j>=1; j--)

 

Podobne pytania

0 głosów
1 odpowiedź 478 wizyt
0 głosów
3 odpowiedzi 1,848 wizyt
+3 głosów
2 odpowiedzi 9,603 wizyt

92,568 zapytań

141,424 odpowiedzi

319,634 komentarzy

61,956 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!

...