Program: sortujący tablicę dwuwymiarową przez wstawienie.
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_przez_wstawianie(int a[],int n)
{
int x,j;
for(int i=n-2;i>=0;i--)
{
x=a[i];
for(j=i+1;(j<n)&&(x>a[j]);j++)
a[j-1]=a[j];
a[j-1]=x;
}
}
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_przez_wstawianie(a,r);
//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ęć:
Jeden z najprostszych algorytmów sortowania, którego zasada działania odzwierciedla sposób w jaki ludzie ustawiają karty – kolejne elementy wejściowe są ustawiane na odpowiednie miejsca docelowe. Jest efektywny dla niewielkiej liczby elementów, jego złożoność wynosi O(n2). Pomimo tego, że jest znacznie mniej wydajny od algorytmów takich jak quicksort czy heapsort.