Program: sortujący tablicę dwuwymiarową poprzez mergeSort.
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 mergeSort(int a[],int ip, int ik)
{
int is,i1,i2,i,p[r];
is = (ip+ik+1)/2;
if(is-ip>0)
mergeSort(a,ip,is-1);
if(ik-is>0)
mergeSort(a,is,ik);
i1=ip; i2=is;
for(i=ip; i<=ik;i++)
if((i1==is)||((i2<=ik)&&(a[i1]>a[i2])))
p[i]=a[i2++];
else
p[i]=a[i1++];
for(i=ip;i<=ik;i++)
a[i]=p[i];
}
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);
mergeSort(a,0,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ęć:
To rekurencyjny algorytm sortowania danych, stosujący metodę dziel i zwyciężaj. Odkrycie algorytmu przypisuje się Johnowi von Neumannowi.