فيديو: هل يمكنك البحث الثنائي في قائمة مرتبطة؟
2024 مؤلف: Lynn Donovan | [email protected]. آخر تعديل: 2023-12-15 23:43
نعم، بحث ثنائي ممكن على قائمة مرتبطة إذا ال قائمة أمر و أنت تعرف على عدد العناصر في قائمة . ولكن أثناء فرز ملف قائمة , تستطيع الوصول إلى عنصر واحد في كل مرة من خلال مؤشر إلى تلك العقدة ، أي إما عقدة سابقة أو عقدة تالية.
إذاً فقط ، ما مدى تعقيد الوقت عند تطبيق بحث ثنائي على قائمة مرتبطة؟
تعقيد الوقت يجب ألا يكون أكثر من O (تسجيل ن). كما القائمة المرتبطة عدم توفير وصول عشوائي إذا حاولنا ذلك تطبيق بحث ثنائي خوارزمية ذلك إرادة الوصول إلى O (n) كما نحتاج تجد طول قائمة وتذهب إلى المنتصف.
تعرف أيضًا ، كيف يتم تنفيذ البحث الثنائي؟ بحث ثنائي : بحث مصفوفة مرتبة بتقسيم ملف بحث الفاصل الزمني في النصف. ابدأ بفترة تغطي المصفوفة بأكملها. إذا كانت قيمة بحث المفتاح أقل من العنصر الموجود في منتصف الفترة الزمنية ، قم بتضييق الفاصل الزمني إلى النصف السفلي. وإلا قم بتضييقه إلى النصف العلوي.
ومن ثم ، ما الطريقة التي يستخدمها البحث الثنائي للعثور على عنصر في القائمة؟
بحث ثنائي يعمل على المصفوفات التي تم فرزها. بحث ثنائي يبدأ بمقارنة ملف عنصر في منتصف المصفوفة مع الهدف القيمة . إذا كان الهدف القيمة يطابق ال عنصر يتم إرجاع موقعه في المصفوفة. إذا كان الهدف القيمة أقل من عنصر ، ال بحث يستمر في النصف السفلي من الصفيف.
كيف تقوم بالتكرار من خلال قائمة مرتبطة؟
ان التكرار يمكن استخدامها في الحلقة عبر ا لينكدليست . يعيد التابع hasNext () صحيحًا إذا كان هناك المزيد من العناصر في لينكدليست وخطأ على خلاف ذلك. تقوم الطريقة next () بإرجاع العنصر التالي في ملف لينكدليست ويطرح الاستثناء NoSuchElementException إذا لم يكن هناك عنصر تالٍ.
موصى به:
كيف يمكنني فرز قائمة مرتبطة أبجديًا؟
يعد فرز سلسلة LinkedList في Java أمرًا سهلاً. يمكنك فرز السلسلة LinkedList بترتيب أبجدي تصاعدي باستخدام الفرز (قائمة القائمة). يمكنك أيضًا فرز السلسلة LinkedList بترتيب أبجدي تنازلي باستخدام الفرز (قائمة القائمة ، المقارنة ج)
كيف يمكنك إنشاء تصنيف فقاعي في قائمة مرتبطة في C ++؟
لإجراء فرز الفقاعة ، نتبع الخطوات التالية: الخطوة 1: تحقق مما إذا كانت البيانات الموجودة على العقدتين المتجاورتين بترتيب تصاعدي أم لا. إذا لم يكن الأمر كذلك ، فقم بتبديل بيانات العقدتين المتجاورتين. الخطوة 2: في نهاية التمرير 1 ، سيكون أكبر عنصر في نهاية القائمة. الخطوة 3: ننهي الحلقة ، عندما تبدأ جميع العناصر
كيف يمكنني فرز قائمة مرتبطة منفردة؟
يوجد أدناه خوارزمية بسيطة لفرز الإدراج لقائمة مرتبطة. 1) إنشاء قائمة فارغة مرتبة (أو نتيجة) 2) اجتياز القائمة المحددة ، اتبع كل عقدة. أ) أدخل العقدة الحالية بطريقة مرتبة في قائمة النتائج أو الفرز. 3) تغيير رأس قائمة مرتبطة معينة إلى رأس قائمة مرتبة (أو نتيجة)
كيف تحذف قائمة دائرية مرتبطة؟
الحذف من قائمة دائرية مرتبطة إذا لم تكن القائمة فارغة ، فإننا نحدد مؤشرين الحاليين والسابق ونقوم بتهيئة تيار المؤشر مع عقدة الرأس. اجتياز القائمة باستخدام تيار للعثور على العقدة المراد حذفها وقبل نقل التيار إلى العقدة التالية ، كل مرة يتم ضبطها prev = cur. إذا تم العثور على العقدة ، فتحقق مما إذا كانت العقدة الوحيدة في القائمة
كيف تضيف عقدة إلى قائمة مرتبطة؟
قم بإدراج عقدة في موضع محدد في قائمة مرتبطة اجتياز القائمة المرتبطة حتى عقد الموضع 1. بمجرد اجتياز جميع عقد الموضع 1 ، قم بتخصيص الذاكرة والبيانات المعطاة للعقدة الجديدة. ضع المؤشر التالي للعقدة الجديدة على العقدة التالية. قم بتوجيه المؤشر التالي للعقدة الحالية إلى العقدة الجديدة