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