Witam, problem tak jak w temacie najlepiej sobie odpalić program by to zobaczyć, i dlaczego tak jest?
A przy x = 100000 pierwsza wyświetla ,a drugiej nie sortuje, a w sumie na tej liczbie bardziej mi zalezy.
#include <iostream>
#include <ctime>
#include <time.h>
#include <conio.h>
#include <iomanip>
#include <cstdlib>
using namespace std;
void sortowanie (int tablica[], int x);
int main()
{
//Deklaracja zmiennych//
int x = 10000;
int tablica[x];
srand(time(NULL));
cout << "Tablica nieposortowana:" <<endl;
for(int i = 0; i < x-1; i++)
{
//Losowanie wartosci//
tablica[i] = rand()%650 - 50;
}
for(int i = 0; i < x-1; i++)
{
cout << tablica[i] << endl;
}
cout << "Tablica posortowana: " << endl;
//Wykorzystanie funkcji//
sortowanie(tablica, x);
for(int i = 0; i<x-1; i++)
{
//Wyswietlenie tablicy//
cout << tablica[i] <<endl;
}
}
//Funkcja sortujaca//
void sortowanie (int tablica[],int x)
{
int z;
int h = 0;
int f = 0;
int g = 0;
do
{
z=0;
for(int j = x-1; j >= 0; j--)
{
if (tablica[j-1] < tablica [j])
{
//Zamiana miejscami//
int zamien;
zamien = tablica [j];
tablica[j] = tablica[j-1];
tablica[j-1] = zamien;
z=1;
f++;
}
}
for(int j = 0; j < x-1; j++)
{
if (tablica[j] < tablica [j+1])
{
//Zamiana miejscami//
int zamien;
zamien = tablica [j+1];
tablica[j+1] = tablica[j];
tablica[j] = zamien;
z=1;
g++;
}
}
h= f + g;
}
while(z==1);
//Ilosc zmian//
cout << "Sorotwanie wymagalo k zamian rowne: " << f << " " << g << " " << h <<" " << endl;
}