Cześć
Jest to program losujący 200liczb z zakresu od 0 do 500. Potem sortuje je bąbelkowo, a następnie zlicza liczbę porównań i zamian. Problem jest jedynie taki, że liczba porównań jest zawsze taka sama (39800), w którym miejscu mam błąd? Jak mogę usprawnić działanie programu tak aby wynik był pokazywany od razu? Bo teraz wykonuje się linia po linii i zajmuje to trochę czasu. Prosiłbym o ewentualne ocenienie przejrzystości kodu, czy jakichś rzeczy brakuje, czy może niektóre są napisane niepotrzebnie
#include <iostream>
#include "losowanie.h"
using namespace std;
int main()
{
Losowanie s1;
s1.wypisz();
return 0;
}
//==============================================================
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
class Losowanie
{
public:
void wypisz();
int a[200];
int lp,lz;
};
void Losowanie::wypisz()
{
srand(time(NULL));
for(int i=0; i<200; i++)
{
a[i]=rand()%500;
cout<<" "<<a[i];
}
lp=lz=0;
for( int i = 0; i < 200; i++ )
{
for( int j = 0; j < 200 - 1; j++ )
{
lp++;
if( a[ j ] > a[ j + 1 ] ){
swap( a[ j ], a[ j + 1 ] );
lz++;
}
cout<<a[j]<<" ";
}
cout<<"******************************************************************************************************"<<endl;
}
cout<<"Liczba porównań:"<<lp<<endl;
cout<<"Liczba zamian:"<<lz<<endl;
}