void test_const_n() { int n = 15; int c[15] = {100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500}; std::ofstream res("res2.txt"); res << "0 0 0" << std::endl; for(int i=0; i<15; i++) { double a=0, b=0; timespec begin, end; for(int j=0; j<TESTS; j++) { knapsack_data d = generate(n); printf("TEST c=%d #%d\n",c[i],j); //dynamic clock_gettime(CLOCK_REALTIME, &begin); knapsack_dynamic(n, c[i], d.value, d.weight); clock_gettime(CLOCK_REALTIME, &end); a+=timespec_to_seconds(&begin, &end); printf("dynamic done\n"); //brute force clock_gettime(CLOCK_REALTIME, &begin); knapsack_bf_iface(n, c[i], d.value, d.weight); clock_gettime(CLOCK_REALTIME, &end); b+=timespec_to_seconds(&begin, &end); printf("brute force done\n\n\n"); free(d.weight); free(d.value); } a/=TESTS; b/=TESTS; res << c[i] << " " << a << " " << b << std::endl; } res.close(); return; }
int main(int argc, char** argv) { srand(time(0)); if(argc>1) { switch(argv[1][0]) { case '1': test_const_c(); printf("const c test done\n"); break; case '2': test_const_n(); printf("const n test done\n"); break; case '3': { knapsack_data d = load(); turniej(d); break; } case '4': { knapsack_data d = generate(10); knapsack_dynamic(10,10,d.value,d.weight); knapsack_bf_iface(10,10,d.value,d.weight); break; } case '5': printf("%ld\n",sizeof(unsigned long long int)); break; } } return 0; }
int main() { printf ("1. rec max value = %d\n", knapsack_rec(0, 0)); printf ("2. bru max value = %d\n", knapsack_bruteforce()); printf ("3. dyn max value = %d\n", knapsack_dynamic()); memset(dynamic_tab_rec, -1, sizeof(dynamic_tab_rec)); printf ("4. dre max value = %d\n", knapsack_dynamic_rec(nitems, knapsacksize)); return 0; }