diff --git a/algorithms/genetic_bucket_algorithm.py b/algorithms/genetic_bucket_algorithm.py
index 63e05584b7e64ba78a82353cbd4a51151bec3f65..121df27096cf57d464dbac6c286357d9ff98cb3a 100644
--- a/algorithms/genetic_bucket_algorithm.py
+++ b/algorithms/genetic_bucket_algorithm.py
@@ -64,23 +64,20 @@ class GeneticBucketAlgorithm(BaseAlgorithm):
                     chromosome.gene[idx] = Chromosome.new_gene(self.bit_count)
 
     def update_fitness(self, use_exact_angle=True):
+        self.buckets = [[]] * 8
         for chromosome in self.chromosomes:
-            chromosome.fitness = -20 * log10(
-                abs(
-                    compute_pattern(
-                        N=self.N,
-                        k=self.k,
-                        weights=self.make_weights(chromosome),
-                        degrees=self.null_degrees,
-                        use_absolute_value=False,
-                    )[0]
-                )
-            )
+            chromosome.fitness = compute_pattern(
+                N=self.N,
+                k=self.k,
+                weights=self.make_weights(chromosome),
+                degrees=self.null_degrees,
+                use_absolute_value=False,
+            )[0]
             bucket_idx = int(((cmath.phase(chromosome.fitness) + pi) / (2 * pi)) * 8) % 8
             self.buckets[bucket_idx].append(chromosome)
 
     def sort_fitness(self):
-        self.chromosomes.sort(key=lambda x: abs(x.fitness), reverse=True)
+        self.chromosomes.sort(key=lambda x: -20 * log10(abs(x.fitness)), reverse=True)
 
     def make_weights(self, chromosome):
         weights = []
@@ -104,4 +101,4 @@ class GeneticBucketAlgorithm(BaseAlgorithm):
     def intialize_sample(self):
         self.chromosomes = [
             Chromosome(self.N, self.bit_count) for i in range(self.sample_size)
-        ]
\ No newline at end of file
+        ]