Ali Ahmed55 نشر 21 نوفمبر أرسل تقرير نشر 21 نوفمبر السلام عليكم هي ليه خوارزمية البحث الثنائي مشهور اوي كده هل عشان هي الافضل ؟ 1 اقتباس
0 محمد عاطف17 نشر 21 نوفمبر أرسل تقرير نشر 21 نوفمبر وعليك السلام ورحمة الله وبركاته. نعم بالفعل خوارزمية البحث الثنائي ( Binary Search ) هي من أشهر الخوارزميات المستخدمة في شرح مفهوم ال (Algorithms) و أيضا قياس الوقت الخاص بالخوارزمية والمقارنة بينها وبين البحث العادي . وأيضا هي مشهورة لأنها سهلة التنفيذ وسهلة الفهم ويمكن تنفيذها بأكثر من طريقة و إستخدام أى لغة برمجة لتنفيذها وأيضا لأنها فعالة وسريعه في البحث حيث تأخذ O(log n) عوضا عن البحث العادي الذي يأخذ O(n*n) . ولكن ال ( Binary Search ) ليس الأفضل دائما لذلك لا يمكننا أنها هي الأفضل من بين خوارزميات البحث . حيث هي الأفضل في حالة القوائم المرتبة الكبيرة . ولكن إذا لم تكن القوائم مرتبة فهنا يكمن القصور حيث سيتوجب أولا ترتيب القائمة ومن ثم البحث فيها . ويمكنك قراءة الدرس التالي لمعرفة مزايا ال ( Binary Search ) : https://wiki.hsoub.com/Algorithms/binary_search 1 اقتباس
0 Ali Ahmed55 نشر 21 نوفمبر الكاتب أرسل تقرير نشر 21 نوفمبر بتاريخ 9 دقائق مضت قال محمد عاطف17: وعليك السلام ورحمة الله وبركاته. نعم بالفعل خوارزمية البحث الثنائي ( Binary Search ) هي من أشهر الخوارزميات المستخدمة في شرح مفهوم ال (Algorithms) و أيضا قياس الوقت الخاص بالخوارزمية والمقارنة بينها وبين البحث العادي . وأيضا هي مشهورة لأنها سهلة التنفيذ وسهلة الفهم ويمكن تنفيذها بأكثر من طريقة و إستخدام أى لغة برمجة لتنفيذها وأيضا لأنها فعالة وسريعه في البحث حيث تأخذ O(log n) عوضا عن البحث العادي الذي يأخذ O(n*n) . ولكن ال ( Binary Search ) ليس الأفضل دائما لذلك لا يمكننا أنها هي الأفضل من بين خوارزميات البحث . حيث هي الأفضل في حالة القوائم المرتبة الكبيرة . ولكن إذا لم تكن القوائم مرتبة فهنا يكمن القصور حيث سيتوجب أولا ترتيب القائمة ومن ثم البحث فيها . ويمكنك قراءة الدرس التالي لمعرفة مزايا ال ( Binary Search ) : https://wiki.hsoub.com/Algorithms/binary_search تمام جدا الف شكراا لحضرتك اقتباس
0 عماد شيخ العشرة نشر 21 نوفمبر أرسل تقرير نشر 21 نوفمبر وعليكم السلام, تخيل أن لدينا مصفوفة تحتوي على عدد هائل من العناصر مرتبة إذا أردنا أن نبحث عن عنصر معين في هذه المصفوفة أسوأً إحتمال worst time case هو أن نمر على جميع العناصر مما يؤدي إلى وقت طويل ونعبر عليه رياضيا o(n^2) لكن بما أننا نعرف أنه مرتب تصاعديا نستطيع الذهاب لنصف المصفوفة ونتأكد اذا الرقم أكبر من اللذي نديره أم أصغر فنقسم المصفوفة لنصفين فنختار القسم اللذي يوجد فيه العنصر المراد تحديده ثم نعمل بالقسم الموجود فيه العنصر المراد تحديده مثل ما عملنا سابقا حتى نلقى العنصر مما يقلل من وقت البحث ويجعل البرنامج يعمل بشكل أسرع جدا ونعبر عليه رياضيا O(logn) فعندما نبحث في مصفوفة مرتبة تكون لنا الأفضلية كما أن تنفيذ الخوارزمية ليس صعبا. وغالبا كل خوارزمية لها مميزاتها وعيوبها وأوقات محددة لإستخدامها فعليها نختار. اقرأ هذا المقال لمعرفة كيف التنفيذ وتفاصيل أكثر: اضغط هنا 1 اقتباس
0 Ali Ahmed55 نشر 21 نوفمبر الكاتب أرسل تقرير نشر 21 نوفمبر بتاريخ 6 ساعة قال عماد شيخ العشرة: وعليكم السلام, تخيل أن لدينا مصفوفة تحتوي على عدد هائل من العناصر مرتبة إذا أردنا أن نبحث عن عنصر معين في هذه المصفوفة أسوأً إحتمال worst time case هو أن نمر على جميع العناصر مما يؤدي إلى وقت طويل ونعبر عليه رياضيا o(n^2) لكن بما أننا نعرف أنه مرتب تصاعديا نستطيع الذهاب لنصف المصفوفة ونتأكد اذا الرقم أكبر من اللذي نديره أم أصغر فنقسم المصفوفة لنصفين فنختار القسم اللذي يوجد فيه العنصر المراد تحديده ثم نعمل بالقسم الموجود فيه العنصر المراد تحديده مثل ما عملنا سابقا حتى نلقى العنصر مما يقلل من وقت البحث ويجعل البرنامج يعمل بشكل أسرع جدا ونعبر عليه رياضيا O(logn) فعندما نبحث في مصفوفة مرتبة تكون لنا الأفضلية كما أن تنفيذ الخوارزمية ليس صعبا. وغالبا كل خوارزمية لها مميزاتها وعيوبها وأوقات محددة لإستخدامها فعليها نختار. اقرأ هذا المقال لمعرفة كيف التنفيذ وتفاصيل أكثر: اضغط هنا شكراا جدا لحضرتك اقتباس
0 Mustafa Suleiman نشر 22 نوفمبر أرسل تقرير نشر 22 نوفمبر لأنها أكثر الخوارزميات كفاءة في البحث في مصفوفات مرتبة، وتعمل بزمن تشغيل O(log n) ، حيث n هو عدد العناصر في المصفوفة، أي أن زمن البحث يقل بشكل كبير مع زيادة عدد العناصر. وتستخدم في العديد من التطبيقات المختلفة، مثل قواعد البيانات، والبحث في الملفات، وإدارة الذاكرة، وغيرها. وتتمثل الفكرة الأساسية في تقسيم المصفوفة إلى نصفين، ثم تحديد النصف الذي يحتوي على العنصر المطلوب. مثلاً لو لدينا مصفوفة مرتبة تحتوي على الأرقام 1، 2، 3، 4، 5، 6، 7، 8، 9، وتبحث عن الرقم 5، فستقوم خوارزمية البحث الثنائي بتقسيم المصفوفة إلى نصفين: النصف الأول: 1، 2، 3، 4 النصف الثاني: 5، 6، 7، 8، 9 ثم ستقوم بتحديد النصف الذي يحتوي على الرقم 5، وهو النصف الثاني، ثم تقسيم النصف الثاني إلى نصفين مرة أخرى: النصف الأول: 5، 6 النصف الثاني: 7، 8، 9 ثم ستقوم بتحديد النصف الذي يحتوي على الرقم 5، وهو النصف الأول، ثم ستقوم بتحديد الرقم 5 في النصف الأول. أي تخيل أنك تبحث عن رقم معين في قائمة مرتبة من الأرقام، تبدأ بالبحث في النقطة الوسطى للقائمة، وفي حال كان الرقم الذي تبحث عنه أكبر من الرقم في النقطة الوسطى، فإنك تركز على النصف العلوي من القائمة، وفي حال الرقم الذي تبحث عنه أصغر من الرقم في النقطة الوسطى، فإنك تركز على النصف السفلي من القائمة، وتكرر تلك العملية حتى تجد الرقم الذي تبحث عنه. ولا يمكن استخدام خوارزمية البحث الثنائي مع البيانات غير مرتبة، وأحيانًا لا تُعطي تلك الخوارزمية النتيجة الصحيحة عند وجود بيانات متكررة. بالتالي هي ليست دائمًا الأفضل في كل الحالات، فهناك خوارزميات أخرى أفضل في بعض الحالات، ومنها: خوارزمية البحث الخطي: أفضل في حالات البحث في مصفوفات صغيرة أو غير مرتبة. خوارزمية البحث الثنائي المتكرر: أفضل في حالات البحث في مصفوفات مرتبة بشكل خاص. خوارزمية البحث الحشوي: أفضل في حالات البحث في مصفوفات كبيرة ومرتبة بشكل خاص. 1 اقتباس
0 Ali Ahmed55 نشر 22 نوفمبر الكاتب أرسل تقرير نشر 22 نوفمبر بتاريخ 2 ساعة قال Mustafa Suleiman: لأنها أكثر الخوارزميات كفاءة في البحث في مصفوفات مرتبة، وتعمل بزمن تشغيل O(log n) ، حيث n هو عدد العناصر في المصفوفة، أي أن زمن البحث يقل بشكل كبير مع زيادة عدد العناصر. وتستخدم في العديد من التطبيقات المختلفة، مثل قواعد البيانات، والبحث في الملفات، وإدارة الذاكرة، وغيرها. وتتمثل الفكرة الأساسية في تقسيم المصفوفة إلى نصفين، ثم تحديد النصف الذي يحتوي على العنصر المطلوب. مثلاً لو لدينا مصفوفة مرتبة تحتوي على الأرقام 1، 2، 3، 4، 5، 6، 7، 8، 9، وتبحث عن الرقم 5، فستقوم خوارزمية البحث الثنائي بتقسيم المصفوفة إلى نصفين: النصف الأول: 1، 2، 3، 4 النصف الثاني: 5، 6، 7، 8، 9 ثم ستقوم بتحديد النصف الذي يحتوي على الرقم 5، وهو النصف الثاني، ثم تقسيم النصف الثاني إلى نصفين مرة أخرى: النصف الأول: 5، 6 النصف الثاني: 7، 8، 9 ثم ستقوم بتحديد النصف الذي يحتوي على الرقم 5، وهو النصف الأول، ثم ستقوم بتحديد الرقم 5 في النصف الأول. أي تخيل أنك تبحث عن رقم معين في قائمة مرتبة من الأرقام، تبدأ بالبحث في النقطة الوسطى للقائمة، وفي حال كان الرقم الذي تبحث عنه أكبر من الرقم في النقطة الوسطى، فإنك تركز على النصف العلوي من القائمة، وفي حال الرقم الذي تبحث عنه أصغر من الرقم في النقطة الوسطى، فإنك تركز على النصف السفلي من القائمة، وتكرر تلك العملية حتى تجد الرقم الذي تبحث عنه. ولا يمكن استخدام خوارزمية البحث الثنائي مع البيانات غير مرتبة، وأحيانًا لا تُعطي تلك الخوارزمية النتيجة الصحيحة عند وجود بيانات متكررة. بالتالي هي ليست دائمًا الأفضل في كل الحالات، فهناك خوارزميات أخرى أفضل في بعض الحالات، ومنها: خوارزمية البحث الخطي: أفضل في حالات البحث في مصفوفات صغيرة أو غير مرتبة. خوارزمية البحث الثنائي المتكرر: أفضل في حالات البحث في مصفوفات مرتبة بشكل خاص. خوارزمية البحث الحشوي: أفضل في حالات البحث في مصفوفات كبيرة ومرتبة بشكل خاص. شكراا لحضرتك جدا اقتباس
السؤال
Ali Ahmed55
السلام عليكم
هي ليه خوارزمية البحث الثنائي مشهور اوي كده هل عشان هي الافضل ؟
6 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.