From 8ad8241657956c27d1d26c5923782921869be3cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20Kaan=20G=C3=9CM=C3=9C=C5=9E?= <96421894+Tahinli@users.noreply.github.com> Date: Wed, 20 Nov 2024 00:20:40 +0300 Subject: [PATCH] perf: :zap: no need to check twice for scout bee --- artificial_bee_colony/src/main.rs | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/artificial_bee_colony/src/main.rs b/artificial_bee_colony/src/main.rs index 6a67130..f1504d1 100644 --- a/artificial_bee_colony/src/main.rs +++ b/artificial_bee_colony/src/main.rs @@ -45,12 +45,6 @@ fn main() { input.upper_bound, input.lower_bound, ); - let mut most_tried_index = 0; - for i in 0..food_sources.len() { - if food_sources[most_tried_index].try_counter < food_sources[i].try_counter { - most_tried_index = i; - } - } for food_source in &food_sources { if best_food_source.fitness_calculation < food_source.fitness_calculation { @@ -58,15 +52,18 @@ fn main() { } } - if food_sources[most_tried_index].try_counter > input.food_source_try_limit { - Bee::scout_bee( - &mut food_sources, - most_tried_index, - input.food_source_try_limit, - input.lower_bound, - input.upper_bound, - input.decision_variable_count, - ); + for index in 0..food_sources.len() { + if food_sources[index].try_counter >= input.food_source_try_limit { + Bee::scout_bee( + &mut food_sources, + index, + input.food_source_try_limit, + input.lower_bound, + input.upper_bound, + input.decision_variable_count, + ) + } + break; } } }