#include #include #define najvPotnc 30 #define velikostTab (1 << najvPotnc) #define korak 1023 // ti števili si morata biti tuji int tabela [velikostTab]; int main() { int i; for (i= 0; i < velikostTab; i++) tabela[i]= i+1; // long vsotaAnaliza= (long) velikost * (velikost+1) / 2; int pot, velikost; long vsotaZapored, vsotaRazprseno; double casZapored, casRazprseno; clock_t zacetek, konec; for (pot= 15; pot <= najvPotnc; pot++) { velikost= (1 << pot); vsotaZapored= 0; zacetek= clock(); for (i= 0; i < velikost; i++) vsotaZapored+= tabela[i]; konec= clock(); casZapored= (double)(konec - zacetek); // double time_spent = (double)(end - begin) / CLOCKS_PER_SEC; vsotaRazprseno= tabela[0]; zacetek= clock(); for (i= korak; i != 0; i= (i + korak)%velikost) vsotaRazprseno+= tabela[i]; konec= clock(); casRazprseno= (double)(konec - zacetek); printf( "p= %d, n= %d, korak= %d\n", pot, velikost, korak); // printf( "Analiza: %ld [%14.2f]\n", vsotaAnaliza, 0.0); printf( "Po vrsti: %ld [%14.2f]\n", vsotaZapored, casZapored); printf( "Razmetano: %ld [%14.2f]\n", vsotaRazprseno, casRazprseno); } }