جدول المحتويات:

كيف يمكنك إنشاء تصنيف فقاعي في قائمة مرتبطة في C ++؟
كيف يمكنك إنشاء تصنيف فقاعي في قائمة مرتبطة في C ++؟

فيديو: كيف يمكنك إنشاء تصنيف فقاعي في قائمة مرتبطة في C ++؟

فيديو: كيف يمكنك إنشاء تصنيف فقاعي في قائمة مرتبطة في C ++؟
فيديو: فيسبوك ماسنجر بعد التحديث | مزايا خطيرة 2024, شهر نوفمبر
Anonim

لإجراء فرز الفقاعات ، نتبع الخطوات التالية:

  1. الخطوة 1: تحقق مما إذا كانت البيانات الموجودة على العقدتين المتجاورتين بترتيب تصاعدي أم لا. إذا لم يكن الأمر كذلك ، فقم بتبديل بيانات العقدتين المتجاورتين.
  2. الخطوة 2: في نهاية التمرير 1 ، سيكون أكبر عنصر في نهاية القائمة.
  3. الخطوة 3: ننهي الحلقة ، عندما تبدأ جميع العناصر.

بهذه الطريقة ، كيف يمكنك إنشاء فرز فقاعي في قائمة مرتبطة في C ++؟

لإجراء فرز الفقاعات ، نتبع الخطوات التالية:

  1. الخطوة 1: تحقق مما إذا كانت البيانات الموجودة على العقدتين المتجاورتين بترتيب تصاعدي أم لا. إذا لم يكن الأمر كذلك ، فقم بتبديل بيانات العقدتين المتجاورتين.
  2. الخطوة 2: في نهاية التمرير 1 ، سيكون أكبر عنصر في نهاية القائمة.
  3. الخطوة 3: ننهي الحلقة ، عندما تبدأ جميع العناصر.

وبالمثل ، ما هو نوع الفقاعة C ++؟ فقاعة الفرز . في ال فقاعة الفرز ، كعناصر مرتبة هم تدريجيا " فقاعة "(أو الارتفاع) إلى موقعها الصحيح في المصفوفة ، مثل فقاعات يرتفع في كوب من الصودا. ال فقاعة الفرز يقارن بشكل متكرر العناصر المجاورة للصفيف. تتم مقارنة العنصرين الأول والثاني وتبديلهما إذا كانا خارج الترتيب.

ثانيًا ، كيف تقوم بفرز البيانات في قائمة مرتبطة؟

الخوارزمية

  1. قم بإنشاء عقدة فئة لها سمتان: البيانات والتالية.
  2. قم بإنشاء SortList فئة أخرى لها سمتان: الرأس والذيل.
  3. ستضيف addNode () عقدة جديدة إلى القائمة:
  4. سوف يقوم sortList () بفرز عقد القائمة بترتيب تصاعدي.
  5. تعرض () العقد الموجودة في القائمة:

ما هي أفضل خوارزمية فرز للقائمة المرتبطة؟

دمج الفرز يُفضل غالبًا لفرز قائمة مرتبطة. يؤدي أداء الوصول العشوائي البطيء لقائمة مرتبطة ببعض الخوارزميات الأخرى (مثل الترتيب السريع ) أداء ضعيف ، والبعض الآخر (مثل نوع كومة ) مستحيل تماما. دع الرأس يكون العقدة الأولى في القائمة المرتبطة التي يتم فرزها ويكون headRef هو المؤشر إلى الرأس.