Program: sortujący tablicę dwuwymiarową sposobem bąbelkowym.
Jak w opisie.
Kompilator: Dev C++
Kod programu:
#include <cstdlib>
#include <iostream>
#include <cmath>
#include <time.h>
using namespace std;
const int r=30;
void funkcja_sortujaca_babelkowe(int a[],int n)
{
int s=0;
for(int i=0;i<n;i++){
for(int j=0;j<n-i;j++){
if(a[j]>a[j+1])
{
swap(a[j],a[j+1]);
s++;
}
}
if(s==0) break;
}
}
int main(int argc, char *argv[])
{
int a[r],i=0,j=0;
srand((unsigned) time(NULL));
for(i=0;i<r;i++)
a[i]=rand()% 100;
for(i=0;i<r;i++)
cout<<a[i]<<'\t';
cout<<endl;
//pomiar czasu
time_t start,end;
double diff;
time(&start);
funkcja_sortujaca_babelkowe(a,r-1);
//koniec pomiaru czasu
time(&end);
diff = difftime(end,start);
cout<<"\nPo sortowaniu: \n\n";
for(i=0;i<r;i++)
cout<<a[i]<<'\t';
cout<<endl;
cout<<"\nTablica posortowana w czasie: "<<diff<<" sekund\n";
system("PAUSE");
return EXIT_SUCCESS;
} Słowniczek pojęć:
Prosta metoda sortowania o złożoności czasowej O(n^2) i pamięciowej O(1). Polega na porównywaniu dwóch kolejnych elementów i zamianie ich kolejności, jeżeli zaburza ona porządek, w jakim się sortuje tablicę. Sortowanie kończy się, gdy podczas kolejnego przejścia nie dokonano żadnej zmiany.