Sortowanie – bąbelkowe

Program: sortujący tablicę dwuwymiarową sposobem bąbelkowym.

Jak w opisie.

Kompilator: Dev C++

Galeria:

Program w akcji.

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.