حاسبة معدل نمو Big-O
المدخلات
| حجم المدخلات n | 20 |
|---|
حاسبة معدل نمو Big-O
أدخل حجم المدخلات n لمقارنة عدد العمليات التي تتطلبها كل فئة من فئات التعقيد الزمني الشائعة — من O(log n) إلى O(n!).
المدخلات
حجم المدخلات
النتائج
أدخل قيمة لعرض النتائج.
التعقيدات الشائعة
النمو المتسارع
معدل نمو Big-O
تُصنِّف علامة Big-O كيفية تطور متطلبات الخوارزمية من الموارد مع نمو حجم المدخلات. بدلاً من قياس الثواني على آلة بعينها، تلتقط شكل النمو — هل يتضاعف العمل حين يتضاعف n، أم يتربع؟ الفئات الست أدناه هي الأكثر مصادفةً في الكتب المقررة والمقابلات التقنية.
الفئات الست الشائعة
O(log n) — لوغاريتمية. كل خطوة تُلغي حصةً ثابتة من العمل المتبقي. البحث الثنائي في مصفوفة مرتبة من مليار عنصر لا يحتاج سوى 30 مقارنة لأنه يُنصِّف مساحة البحث في كل خطوة. تندرج هنا عمليات البحث في أشجار البحث الثنائية المتوازنة والتكرارات المستندة إلى "فرِّق تسُد".
O(n) — خطية. ينمو العمل بنسبة مباشرة مع حجم المدخلات. تمرير واحد عبر مصفوفة للعثور على أعلى قيمة، وعدُّ المحارف في سلسلة نصية، وقراءة كل عنصر في قائمة، كلها خطية. تُعدُّ الخوارزميات الخطية كفؤةً بوجه عام.
O(n log n) — خطية-لوغاريتمية. التعقيد الأكثر شيوعاً للفرز. يُحقق فرز الدمج وheapsort وTimsort (المستخدم في Python وJava) جميعها O(n log n)، وهو الحد النظري الأدنى للفرز القائم على المقارنة. عند ، يبلغ العدد نحو عشرين مليون عملية — سريع في الواقع العملي.
O(n²) — تربيعية. حلقتان متداخلتان على المدخلات. فرز الفقاعة والإدراج والضرب الساذج للمصفوفات كلها O(n²) في أسوأ الأحوال. عند يبلغ العدد مئة مليون عملية؛ وعند يصبح تريليوناً — مستحيل التطبيق على البيانات الكبيرة.
O(2ⁿ) — أسية. يتضاعف العمل مع كل عنصر إضافي. تُعيد خوارزمية Fibonacci العودية الساذجة حساب المسائل الفرعية بشكل أسي؛ وكذلك تعداد جميع المجموعات الجزئية ينمو كـ . عند n = 40 يتجاوز العدد تريليوناً.
O(n!) — مضروبية. أسرع فئة نمو في تحليل الخوارزميات اليومي. حلول القوة الغاشمة لمسائل التباديل — استعراض كل جولة ممكنة في مسألة البائع المتجول — تُنجز عملية واحدة لكل تبديل، وعدد التباديل هو . عند n = 20 يتجاوز العدد ألفَي كوينتيليون عملية.
مثال توضيحي عند n = 20
النسبة بين O(n log n) وO(n!) عند n = 20 تبلغ نحو — الفارق بين فرز سريع والانتظار مدةً أطول من عمر الكون.
إرشادات عملية
تؤثر الثوابت وسلوك الذاكرة المخبئية في n الصغير؛ التعقيد يهيمن في n الكبير. عند نحو n = 10,000 يبدأ O(n²) في إثارة الإشكاليات على العتاد الحديث (مع افتراض عمليات بسيطة). فوق تُفرض الحاجة عموماً إلى خوارزمية من النوع O(n log n) أو أكفأ. الخوارزميات الأسية والمضروبية تستلزم أساليب التقريب والبرمجة الديناميكية وتشذيب الفضاء لأي مدخلات واقعية.
محوّل الأنظمة العددية مفيدة عند العمل مع التمثيلات الثنائية لفضاء المدخلات.
الأسئلة الشائعة (FAQ)
ما الذي يقيسه تدوين Big-O فعلاً؟
يصف تدوين Big-O الحد الأعلى لكيفية نمو زمن تشغيل الخوارزمية (أو استهلاك الذاكرة) كلما زاد حجم المدخلات n. يتعمد التجاهل العوامل الثابتة والحدود الأدنى درجةً لأهميتها تتضاءل مع تزايد n.
ستتفوق خوارزمية O(n²) دائماً على خوارزمية O(n log n) لمدخلات كبيرة كافية، بصرف النظر عن سرعة العتاد. تدوين Big-O أداة لمقارنة تصاميم الخوارزميات — لا تنبؤ دقيق بالزمن الفعلي.
لماذا يكون أساس اللوغاريتم 2؟
تُقسِّم معظم خوارزميات "فرِّق تسُد" (البحث الثنائي، فرز الدمج، أشجار البحث الثنائية المتوازنة) عملها إلى نصفين في كل خطوة، فيكون عمق هذا التقسيم log₂ n. في تحليل Big-O يُعدُّ أساس اللوغاريتم عاملاً ثابتاً لا يُغيِّر فئة التعقيد — يختلف log₂ n عن log₁₀ n بعامل ثابت فحسب.
لكن الأساس 2 هو الاصطلاح السائد في علم الحاسوب نظراً للتقسيم الثنائي. تستخدم هذه الحاسبة الأساس 2 توافقاً مع هذا الاصطلاح.
عند أي حجم مدخلات يبدأ التعقيد في الظهور جلياً؟
للمدخلات الصغيرة، نحو n < 50، كثيراً ما تتفوق خوارزمية O(n²) جيدة الضبط على خوارزمية أسرع نظرياً من النوع O(n log n) لانخفاض عبئها الثابت وأدائها الأفضل مع الذاكرة المخبئية. يبدأ التعقيد في الهيمنة حين يبلغ n المئات أو الآلاف.
عند n = 1,000 تُنجز خوارزمية O(n log n) نحو 10,000 مقارنة بينما تُنجز O(n²) مليون مقارنة. عند n = 1,000,000 يصبح الفارق مليار مقابل تريليون — يصير التعقيد الشاغل الوحيد.
هل تُستخدم خوارزميات O(n!) في التطبيقات الفعلية؟
خوارزميات O(n!) عملياً غير قابلة للتطبيق إلا على أصغر المدخلات. عند n = 20 تتجاوز n! ألفَي كوينتيليون عملية — أكثر مما تستطيع أي حاسوبة إنجازه في عمر إنساني.
عملياً تُحل المسائل العسيرة NP-hard كمسألة البائع المتجول بخوارزميات تقريبية وإرشادية وبرمجة ديناميكية تتجنب استعراض جميع التباديل. عمود المضروب في هذه الحاسبة تذكير بالسبب الذي جعل هذه الأساليب التقريبية ضرورةً لا ترفاً.