diff options
author | Alexandre Jesus <adbjesus@gmail.com> | 2017-11-06 18:27:28 +0000 |
---|---|---|
committer | Alexandre Jesus <adbjesus@gmail.com> | 2017-11-06 18:27:28 +0000 |
commit | 01c757e09afbc6ae401a56e9f588b21cea54b613 (patch) | |
tree | 1d516f02c731ee7f2dff19b0dfddbafb4c041788 /src/main | |
parent | 3333e0c5a1a8e39c74fb178ac124940844463520 (diff) | |
download | libuknapsack-01c757e09afbc6ae401a56e9f588b21cea54b613.tar.gz libuknapsack-01c757e09afbc6ae401a56e9f588b21cea54b613.zip |
Add nem_ull with shuffle
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/nem_ull_shuffle.c | 43 | ||||
-rw-r--r-- | src/main/online.c | 2 |
2 files changed, 45 insertions, 0 deletions
diff --git a/src/main/nem_ull_shuffle.c b/src/main/nem_ull_shuffle.c new file mode 100644 index 0000000..e0996ba --- /dev/null +++ b/src/main/nem_ull_shuffle.c @@ -0,0 +1,43 @@ +#include <stdio.h> +#include <time.h> +#include <stdlib.h> +#include <string.h> +#include <sys/time.h> +#include "common.h" +#include "structs.h" +#include "nem_ull.h" + +int main(int argc, char * argv[]){ + struct data * data; + struct front_item * front = NULL; + + if(argc!=3){ + printf("Wrong number of arguments!\n"); + printf("Example usage: %s cut_point data_file\n", argv[0]); + return 0; + } + + data = input(argv[2]); + + struct timeval tv; + gettimeofday(&tv, NULL); + srand(tv.tv_sec + tv.tv_usec); + + /* Sort data */ + qsort(data->items, data->N, sizeof(struct item), cmp_items_ratio); + + printf("%d\n", atoi(argv[1])); + clock_t t = clock(); + front = nem_ull_online_shuffle(data, atoi(argv[1])); + + /* Remove first item from front (only a placeholder) */ + t = clock() - t; + printf("%f,%d\n",((float)t)/CLOCKS_PER_SEC,len_front(front)); + + print_front(front); + + free_front(front); + free_data(data); + + return 0; +} diff --git a/src/main/online.c b/src/main/online.c index fbec660..7dec27c 100644 --- a/src/main/online.c +++ b/src/main/online.c @@ -13,6 +13,8 @@ int main(int argc, char * argv[]){ struct data * data; struct front_item * front = NULL; struct online_return ret; + ret.tree = NULL; + ret.front = NULL; if(argc!=6){ printf("Wrong number of arguments!\n"); |