diff options
author | Alex AUVOLAT <alex.auvolat@ens.fr> | 2013-12-08 11:22:47 +0100 |
---|---|---|
committer | Alex AUVOLAT <alex.auvolat@ens.fr> | 2013-12-08 11:22:47 +0100 |
commit | bf00b49660fee9b13268fac075a955c8485d4b6b (patch) | |
tree | fe71ffa2058a6562d554bafa55656ac1b4ae9462 | |
parent | 117cacb7f592bc7a4e506da290fa28dd77530b1a (diff) | |
download | AlgoProg-Projet-bf00b49660fee9b13268fac075a955c8485d4b6b.tar.gz AlgoProg-Projet-bf00b49660fee9b13268fac075a955c8485d4b6b.zip |
Correction d'un bug relativement majeur.
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | set_bitsets.c | 10 |
2 files changed, 8 insertions, 6 deletions
@@ -4,13 +4,13 @@ COMMON_H=graph.h sets.h algos.h all : exe_ll exe_bs exe_tr exe_ll_test exe_ll : set_linked_lists.c $(COMMON_C) $(COMMON_H) - gcc -o exe_ll set_linked_lists.c $(COMMON_C) -DLINKEDLISTS -g -O2 + gcc -o exe_ll set_linked_lists.c $(COMMON_C) -DLINKEDLISTS -g -O3 exe_ll_test : set_test.c sets.h set_linked_lists.c sets.c gcc -o exe_ll_test set_test.c set_linked_lists.c sets.c -DLINKEDLISTS -g exe_bs : set_bitsets.c $(COMMON_C) $(COMMON_H) - gcc -o exe_bs set_bitsets.c $(COMMON_C) -DBITSETS -g + gcc -o exe_bs set_bitsets.c $(COMMON_C) -DBITSETS -g -O3 exe_bs_test : set_test.c sets.h set_bitsets.c sets.c gcc -o exe_ll_test set_test.c set_bitsets.c sets.c graphc. -DBITSETS -g diff --git a/set_bitsets.c b/set_bitsets.c index 5578620..bbfd095 100644 --- a/set_bitsets.c +++ b/set_bitsets.c @@ -160,14 +160,16 @@ int elt_of_set(const set s){ } int elt_of_set_heur(const set s, int h){ - int N=nbCells(s.N), i; + int N=nbCells(s.N), i, cell; if(s.tab[h/SCOD]>>(h%SCOD) !=0) return h + dyadic_val(s.tab[h/SCOD]>>(h%SCOD)) ; - for(i=0; i<N; i++) - if(s.tab[(i+h/SCOD+1)%N] != 0) - return i*SCOD+dyadic_val(s.tab[(i+h/SCOD+1)%N]); + for(i=0; i<N; i++) { + cell = (i + h/SCOD + 1) % N; + if(s.tab[cell] != 0) + return cell*SCOD + dyadic_val(s.tab[cell]); + } printf("No element in an empty set!\n"); dump_set(s); |