Ali Ahmed6 نشر 29 نوفمبر 2023 أرسل تقرير نشر 29 نوفمبر 2023 الكود ده عبار عن خورزميات البحث الثناثي arr = [2,3,4,5,6,7,8] start = 0 end = len(arr) - 1 n = int(input("Number: ")) while start <= end: mid = start + (end - start) // 2 if n == arr[mid]: print("Found") elif n < arr[mid]: # 3 < 5 end = start + 1 # start = 0 / end = 1 elif n > arr[mid]: # 7 > 5 start = end - 1 # start = 5 else: print("No Found") 1 اقتباس
0 Adnane Kadri نشر 29 نوفمبر 2023 أرسل تقرير نشر 29 نوفمبر 2023 لا تزال تحتاج تحديث نهاية النطاق (end) عندما يكون العنصر الذي نبحث عنه أقل من العنصر في منتصف النطاق. وبنفس المنطق، تحديث بداية النطاق (start) عندما يكون العنصر الذي نبحث عنه أكبر من العنصر في منتصف النطاق. أيضا سوف تحتاج إضافة تحقق بعد الحلقة للتحقق مما إذا كان لم يتم العثور على العنصر. شيء آخر يجب عليك القيام به هو كسر الحلقة عند الحصول على العنصر. الناتج: arr = [2, 3, 4, 5, 6, 7, 8] start = 0 end = len(arr) - 1 n = int(input("Number: ")) while start <= end: mid = start + (end - start) // 2 if n == arr[mid]: print("Found") break # يجب إيقاف الحلقة بمجرد العثور على العنصر elif n < arr[mid]: end = mid - 1 # تحديث نهاية النطاق ليكون mid - 1 elif n > arr[mid]: start = mid + 1 # تحديث بداية النطاق ليكون mid + 1 if start > end: print("Not Found") 1 اقتباس
0 Ali Ahmed6 نشر 29 نوفمبر 2023 الكاتب أرسل تقرير نشر 29 نوفمبر 2023 بتاريخ 6 دقائق مضت قال Adnane Kadri: لا تزال تحتاج تحديث نهاية النطاق (end) عندما يكون العنصر الذي نبحث عنه أقل من العنصر في منتصف النطاق. وبنفس المنطق، تحديث بداية النطاق (start) عندما يكون العنصر الذي نبحث عنه أكبر من العنصر في منتصف النطاق. أيضا سوف تحتاج إضافة تحقق بعد الحلقة للتحقق مما إذا كان لم يتم العثور على العنصر. شيء آخر يجب عليك القيام به هو كسر الحلقة عند الحصول على العنصر. الناتج: arr = [2, 3, 4, 5, 6, 7, 8] start = 0 end = len(arr) - 1 n = int(input("Number: ")) while start <= end: mid = start + (end - start) // 2 if n == arr[mid]: print("Found") break # يجب إيقاف الحلقة بمجرد العثور على العنصر elif n < arr[mid]: end = mid - 1 # تحديث نهاية النطاق ليكون mid - 1 elif n > arr[mid]: start = mid + 1 # تحديث بداية النطاق ليكون mid + 1 if start > end: print("Not Found") يا انهار ابيض , ايو صح انا نسية اكسر الحلقه وكمان نسيه الmid شكرااا جداا والله اقتباس
0 عبدالباسط ابراهيم نشر 30 نوفمبر 2023 أرسل تقرير نشر 30 نوفمبر 2023 الشيفرة التي قمت بمشاركتها هي خوارزمية بحث ثنائي (Binary Search)، ولكن هناك بعض المشكلات في الشيفرة التي قد تؤثر على عملية البحث الصحيحة. إليك بعض المشكلات التي يمكننا تصحيحها: في السطر `end = start + 1` و `start = end - 1`، يجب تعديلها لتحديث قيمة `start` و `end` بناءً على قيمة `mid` بدلاً من القيم الثابتة. يمكنك تعديلها على النحو التالي: يجب إضافة تعليمة `break` بعد طباعة "Found" في حالة العثور على العنصر المطلوب. هذا لأنه بعد العثور على العنصر، لا يوجد حاجة للاستمرار في الحلقة. يمكنك إضافة `break` على النحو التالي: يجب إضافة تعليمة `else` في نهاية الحلقة لطباعة "Not Found" إذا لم يتم العثور على العنصر المطلوب. يمكنك إضافة `else` على النحو التالي: بعد تصحيح هذه المشكلات، يجب أن تعمل الشيفرة بشكل صحيح للبحث عن العنصر المطلوب في القائمة المرتبة. 1 اقتباس
0 Ali Ahmed6 نشر 1 ديسمبر 2023 الكاتب أرسل تقرير نشر 1 ديسمبر 2023 بتاريخ On 30/11/2023 at 12:33 قال عبدالباسط ابراهيم: الشيفرة التي قمت بمشاركتها هي خوارزمية بحث ثنائي (Binary Search)، ولكن هناك بعض المشكلات في الشيفرة التي قد تؤثر على عملية البحث الصحيحة. إليك بعض المشكلات التي يمكننا تصحيحها: في السطر `end = start + 1` و `start = end - 1`، يجب تعديلها لتحديث قيمة `start` و `end` بناءً على قيمة `mid` بدلاً من القيم الثابتة. يمكنك تعديلها على النحو التالي: يجب إضافة تعليمة `break` بعد طباعة "Found" في حالة العثور على العنصر المطلوب. هذا لأنه بعد العثور على العنصر، لا يوجد حاجة للاستمرار في الحلقة. يمكنك إضافة `break` على النحو التالي: يجب إضافة تعليمة `else` في نهاية الحلقة لطباعة "Not Found" إذا لم يتم العثور على العنصر المطلوب. يمكنك إضافة `else` على النحو التالي: بعد تصحيح هذه المشكلات، يجب أن تعمل الشيفرة بشكل صحيح للبحث عن العنصر المطلوب في القائمة المرتبة. طيب استخدم نفس الشيفره عادي لو بدور علي اسماء عادي صح والا اي ؟ ولو سمحت سوال كمان هو انا ممكن استخدم الخورزميه ده فيه اي نوع يعني مثل dict وكده يعني والا الا فيه ال arr فقط؟ اقتباس
السؤال
Ali Ahmed6
الكود ده عبار عن خورزميات البحث الثناثي
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.