wz


Leviathan’s great computer benchmark

Ξ February 24th, 2007 | → | ∇ Uncategorized |

Prof. Štěrbík ve mně před pár týdny probudil zájem o prgm. jazyk C (C++), na který jsem kdysi zanevřel, protože jsem si myslel, že postrádá dynamická, dynamicky multidimenzionálně přeallokovatelná pole. Prof. Štěrbík mě ale přesvědčil o opaku a tak jsem se tomuto jazyku začal opět věnovat. Zvolil jsem si ale trochu lepší verzi tohoto jazyka - prakticky nejnovější (rok 2005) - C++/CLI (C++/Common Language Interface), která dovoluje využívat obrovskou sílu Microsoft .NET Frameworku a kombinovat managed a unmanaged kód.

Začal jsem hned s dynamickými poli a přes odpoledne jsem vytvořil program, který obsahuje 5 algoritmů na třídění polí: Bubble Sort, Shell Sort, Exchange Sort, Selection Sort a Insertion Sort. U každého algoritmu měří čas zpracování pole o velikosti 20 000 integerů naplněných náhodným číslem o velikosti 0 až 999. Následně zprůměruje tyto časy a vytvoří koeficient kalkulační kapacity processoru.

(Kód + Download v Read More)


#include “stdafx.h”
#include
#include
#include
#include
#include

void WaitForKey();
void Wait();
void ArrayRefill(int *, int *, int);
void BubbleSort(int *, int);
void ShellSort(int *, int);
void ExchangeSort(int *, int);
void SelectionSort(int *, int);
void InsertionSort(int *, int n);

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int *a;
int *b;
double vs[5];
int n = 20000;
int i = 0;
clock_t start;
clock_t end;
double time;
a = (int *)malloc(n*sizeof(int));
if(a==NULL) {exit(1);}
b = (int *)malloc(n*sizeof(int));
if(b==NULL) {exit(1);}
printf(”LEVIATHAN’S GREAT COMPUTER CALCULATION CAPACITY TEST\n”);
printf(”————————————————————————-\n”);
printf(”USING ARRAY WITH 20000 COMPONENTS, EACH WITH RANDOM NUMBER FROM 0 TO 1000″);
for(i=0; i printf("\n\n");

Wait();
ArrayRefill(b, a, n);

start = clock();
BubbleSort(a, n);
end = clock();
time = (double)((((end - start)/(double)CLOCKS_PER_SEC))*1000);
printf("Bubble Sort done in: %.0f ", time); vs[0] = time;
printf("\n");
Wait();
start=0; end=0; time=0; ArrayRefill(a, b, n);

start = clock();
ShellSort(a, n);
end = clock();
time = (double)((((end - start)/(double)CLOCKS_PER_SEC))*1000);
printf("Shell Sort done in: %.0f ", time); vs[1] = time;
printf("\n");

Wait();
start=0; end=0; time=0; ArrayRefill(a, b, n);

start = clock();
ExchangeSort(a, n);
end = clock();
time = (double)((((end - start)/(double)CLOCKS_PER_SEC))*1000);
printf("Exchange Sort done in: %.0f ", time); vs[2] = time;
printf("\n");

Wait();
start=0; end=0; time=0; ArrayRefill(a, b, n);

start = clock();
SelectionSort(a, n);
end = clock();
time = (double)((((end - start)/(double)CLOCKS_PER_SEC))*1000);
printf("Selection Sort done in: %.0f ", time); vs[3] = time;
printf("\n");

Wait();
start=0; end=0; time=0; ArrayRefill(a, b, n);

start = clock();
InsertionSort(a, n);
end = clock();
time = (double)((((end - start)/(double)CLOCKS_PER_SEC))*1000);
printf("Insertion Sort done in: %.0f \n\n", time); vs[4] = time;
printf("-------------------------------------------------------------------------\n");
printf("#RESULT: BuS[%.0f] Shs[%.0f] ExS[%.0f] SeS[%.0f] InS[%.0f]\n",vs[0] ,vs[1] ,vs[2] ,vs[3] ,vs[4] );
printf("#RESULT: Your computer's calculation capacity coefficient: %.3f units\n",
(vs[0]+vs[1]+vs[2]+vs[3]+vs[4])/5);

free(a); free(b);
WaitForKey();

}

void WaitForKey()
{
printf("\n\nHit Return Or Die ...\n");
getchar();
}
void Wait()
{
printf(" / ");
getchar();
}

void ArrayRefill(int *to, int *from, int n)
{
int i=0;
for(i=0; i {
*(to+i)=*(from+i);
}

}


Definice třídících funkcí neposkytnu kvůli škole :)

Download: http://leviathan.xf.cz/filez/sorting2.exe

 

One Response to ' Leviathan’s great computer benchmark '

Subscribe to comments with RSS or TrackBack to ' Leviathan’s great computer benchmark '.

  1. michaelf.ms said,

    on February 24th, 2007 at 11:31 am

    sry za ty includy, ale &lt &gt jsou jaksi nekompatibilni s editorem clanku. sry za ty funkce, ale urcite se najdou lidi (muzu jmenovat), ktery by je u sterbika vyuzili.

Leave a reply



kdojsme

Leviathan

    kdo je Leviathan

    Jsem student aktuálně čtvrtého ročníku střední průmyslové školy strojní a elektrotechnické v českých budějovicích

     


 


RSS Zdroj

    ::

    RSS 2.0 < ZDE

    Přidejte si můj zdroj do vaší RSS čtečky

     

Statistiky