شرح كيفية استخدام binarySearch في Dart لتسهيل عملية البحث داخل list
خوارزمية binarySearch من اكثر الخوارزميات استعمالا في البرمجة وذلك لانها توفر وقت كبير على المبرمجين وتسرع من الحصول على النتائج ولكن لكي تستطيع استخدام هذه الخوارزميه عليك بان تقوم بترتيب عناصر ال list حتى تتمكن من استعمالها وهذا الشرط ضروري في استخدام binarySearch وهذا ما تقوم عليه يمكنك استخدام امر sort او حتى ترتيب عناصر الlist لديك حتى تتمكن من استعمالها .
How to use binarySearch in flutter
الطريقة او اليه عملها بكل بساطة تقوم بقسم ال list الى قسين يمين ويسار وتقارن القيمه التي تبحث عنها اكبر من الجزء اليسار او اقل اذا كانت اقل فهذا يعني ان الرقم موجود في الجزء الاول يتم قسم الlist ايضا الى جزئين وهكذا تبقى تعمل في عملية التقسيم الى ان تصل في النهايه الى ناتج تستطيع من خلاله معرفة الرقم هل يساوي الرقم المراد ام لا وبهذا توفر وقت كبير في عمليات البحث بدلا من المرور على العنصر عنصر تلو الاخر .
binarySearch.dart
void main() {
List<int> list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
print(binarySearch(13,list));
}
int binarySearch(int value,List list) {
int start = 0;
int end = list.length -1;
int middle = ((start+end)/2).floor();
while (list[middle] != value && start <= end) {
print('$start , $middle, $end');
if (value < list[middle]) {
end = middle - 1;
} else {
start = middle + 1;
}
middle = ((start+end)/2).floor();
}
if (list[middle] == value) return middle;
return -1;
}
