سؤال

أعلم أنه خوارزمية وقت رباعية، ولكن كيف تقارن بخوارزميات الفرز الأخرى، مثل QuickSort أو Bubble Trans؟

هل كانت مفيدة؟

المحلول

تختلف خوارزميات الفرز بشكل عام بناء على طبيعة البيانات التي لديك.

ومع ذلك، في حين أن فرز الفقاعات والاختيار من السهل فهم خوارزميات الفرز وقت التشغيل الخاص بهم هو O (n ^ 2)، أي أسوأ وقت يمكنك الحصول عليه.

بقدر ما يتعلق الأمر بالفرز السريع بتهمة Average Avergage، فإنه يأخذ O (N Log N) وقتا هو نوع ممتاز. ومع ذلك، يمكن أن تأخذ أيضا O (n ^ 2) في بعض الحالات.

نصائح أخرى

خوارزميات التوقيت التربيعي، اعتمادا على حجم مجموعة البيانات الخاصة بك، يمكن أن تكون أبطأ بشكل لا يصدق.

ن = 10E78 (حول عدد الذرات في الكون)

بالنسبة للخوارزمية التربيعية، هذا ن * (10E78). بالنسبة لخوارزمية NLOG (N)، مثل QuickSort أو Mergesort، هذا ن * 262. هذا فرق كبير.

ولكن إذا كانت مجموعة البيانات الخاصة بك صغيرة نسبيا (<1000 عنصرا، فقل)، فمن المحتمل أن يكون فرق الأداء ربما يكون ملحوظا (ما لم يكن الأمر كذلك، وربما القيام به مرارا وتكرارا). في هذه الحالات، يكون من الأفضل استخدام أبسط خوارزمية، وتحسينها في وقت لاحق إذا اتضح أن تكون بطيئا للغاية.

"التحسين المبكر هو أصل كل الشرور." -Sir توني هوراري، مشهور من قبل دونالد نوث

ويكيبيديا يعرف كل شيء.

اختيار فرز الكثير تمتص جدا.

إذا كانت البيانات التي تتكون من الأعداد الصحيحة الموجبة فقط، فقد ترغب في إلقاء نظرة على فرز دلو. يمكن أن تحتوي الخوارزمية على وقت تشغيل خطي (ن) في الظروف الصحيحة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top