جدول المحتويات:
فيديو: كيف يمكنك إنشاء تصنيف فقاعي في قائمة مرتبطة في C ++؟
2024 مؤلف: Lynn Donovan | [email protected]. آخر تعديل: 2023-12-15 23:43
لإجراء فرز الفقاعات ، نتبع الخطوات التالية:
- الخطوة 1: تحقق مما إذا كانت البيانات الموجودة على العقدتين المتجاورتين بترتيب تصاعدي أم لا. إذا لم يكن الأمر كذلك ، فقم بتبديل بيانات العقدتين المتجاورتين.
- الخطوة 2: في نهاية التمرير 1 ، سيكون أكبر عنصر في نهاية القائمة.
- الخطوة 3: ننهي الحلقة ، عندما تبدأ جميع العناصر.
بهذه الطريقة ، كيف يمكنك إنشاء فرز فقاعي في قائمة مرتبطة في C ++؟
لإجراء فرز الفقاعات ، نتبع الخطوات التالية:
- الخطوة 1: تحقق مما إذا كانت البيانات الموجودة على العقدتين المتجاورتين بترتيب تصاعدي أم لا. إذا لم يكن الأمر كذلك ، فقم بتبديل بيانات العقدتين المتجاورتين.
- الخطوة 2: في نهاية التمرير 1 ، سيكون أكبر عنصر في نهاية القائمة.
- الخطوة 3: ننهي الحلقة ، عندما تبدأ جميع العناصر.
وبالمثل ، ما هو نوع الفقاعة C ++؟ فقاعة الفرز . في ال فقاعة الفرز ، كعناصر مرتبة هم تدريجيا " فقاعة "(أو الارتفاع) إلى موقعها الصحيح في المصفوفة ، مثل فقاعات يرتفع في كوب من الصودا. ال فقاعة الفرز يقارن بشكل متكرر العناصر المجاورة للصفيف. تتم مقارنة العنصرين الأول والثاني وتبديلهما إذا كانا خارج الترتيب.
ثانيًا ، كيف تقوم بفرز البيانات في قائمة مرتبطة؟
الخوارزمية
- قم بإنشاء عقدة فئة لها سمتان: البيانات والتالية.
- قم بإنشاء SortList فئة أخرى لها سمتان: الرأس والذيل.
- ستضيف addNode () عقدة جديدة إلى القائمة:
- سوف يقوم sortList () بفرز عقد القائمة بترتيب تصاعدي.
- تعرض () العقد الموجودة في القائمة:
ما هي أفضل خوارزمية فرز للقائمة المرتبطة؟
دمج الفرز يُفضل غالبًا لفرز قائمة مرتبطة. يؤدي أداء الوصول العشوائي البطيء لقائمة مرتبطة ببعض الخوارزميات الأخرى (مثل الترتيب السريع ) أداء ضعيف ، والبعض الآخر (مثل نوع كومة ) مستحيل تماما. دع الرأس يكون العقدة الأولى في القائمة المرتبطة التي يتم فرزها ويكون headRef هو المؤشر إلى الرأس.