يتناول تعقيد الخوارزمية في المقام الأول مصدرين:
وقت
(مدة التنفيذ) و
فضاء
(استخدام الذاكرة). في حين أن تعقيد الوقت يقيس مدى نمو وقت التشغيل مع حجم الإدخال (
ن
), يقوم تعقيد المساحة بتقييم استهلاك الذاكرة. على سبيل المثال:
- خوارزمية مع
على)
تتناسب تعقيدات الوقت بشكل خطي مع حجم الإدخال.
- خوارزمية مع
O(1)
تستخدم التعقيدات المكانية ذاكرة ثابتة بغض النظر عن حجم الإدخال.
كلا المقياسين ضروريان. قد تؤدي الخوارزمية السريعة إلى استنفاد الذاكرة في مجموعات البيانات الكبيرة، في حين أن الخوارزمية الفعالة في استخدام الذاكرة قد تكون بطيئة للغاية بالنسبة للتطبيقات في الوقت الفعلي.
الكفاءة تحدد الجدوى. فكر في فرز قائمة مكونة من 10 عناصر مقابل 10 ملايين:
- A
فرز الفقاعات
(
على)
) قد يكون كافياً لمجموعات البيانات الصغيرة ولكنه يصبح غير عملي لمجموعات البيانات الكبيرة.
- A
دمج الفرز
(
O(n log n)
) يتعامل مع مجموعات البيانات الأكبر حجمًا بسلاسة ولكنه يتطلب ذاكرة إضافية.
يوفر تحليل التعقيد لغة عالمية لمقارنة الخوارزميات، مما يؤدي إلى تجريد التفاصيل الخاصة بالأجهزة. إنه يمكّن المطورين من التنبؤ بإمكانية التوسع وتجنب الاختناقات في الأنظمة الحرجة.
تصف التدوينات المقاربة السلوك المحدد للوظائف، وتقدم اختصارًا للتعقيد. الرموز الأساسية الثلاثة هي:
يقوم تدوين Big O بتعريف الحد الأقصى للوقت أو المساحة التي ستستغرقها الخوارزمية. على سبيل المثال:
-
O(1)
:وقت ثابت (على سبيل المثال، الوصول إلى عنصر المصفوفة عن طريق الفهرس).
-
على)
:الوقت الخطي (على سبيل المثال، التكرار خلال القائمة).
-
على)
:الوقت التربيعي (على سبيل المثال، الحلقات المتداخلة في فرز الفقاعات).
يُعد Big O المقياس الأكثر استخدامًا، لأنه يضمن سقوف الأداء.
أوميغا يصف الحد الأدنى من الوقت المطلوب. على سبيل المثال:
- البحث الخطي لديه
(1)
إذا كان الهدف هو العنصر الأول.
في حين أن التحليل الذي يعتمد على أفضل الحالات قد يبدو متفائلاً، إلا أنه أقل إفادة عند التخطيط لأسوأ الحالات.
تجمع Theta بين Big O وOmega، مما يمثل السلوك المقارب الدقيق. إذا كانت أفضل وأسوأ حالات الخوارزمية هي نفسها:
-
(ن سجل ن)
ينطبق على أنواع الدمج في السيناريوهات المتوسطة والأسوأ.
تجرد هذه التدوينات الثوابت والمصطلحات ذات الدرجة الأدنى، مع التركيز على معدلات النمو. على سبيل المثال، 2ن + 3ن + 4 يبسط إلى على) لأن المصطلح التربيعي يهيمن على الكبير ن .
يساعد فهم فئات التعقيد في تصنيف الخوارزميات حسب قابلية التوسع. فيما يلي التسلسل الهرمي من الأكثر كفاءة إلى الأقل كفاءة:
يظل وقت التنفيذ أو الذاكرة دون تغيير
ن
ينمو.
-
مثال
:الوصول إلى قيمة جدول التجزئة عن طريق المفتاح.
ينمو وقت التشغيل بشكل لوغاريتمي مع
ن
.
-
مثال
:يقوم البحث الثنائي بتقسيم مساحة الإدخال إلى النصف في كل تكرار.
يتناسب وقت التشغيل مع
ن
.
-
مثال
:البحث الخطي من خلال قائمة غير مرتبة.
شائع في خوارزميات التقسيم والغزو.
-
مثال
:دمج الفرز وفرز الكومة.
تؤدي التكرارات المتداخلة إلى نمو هائل.
-
مثال
:فرز الفقاعات وفرز التحديد.
يتضاعف وقت التشغيل مع كل إدخال إضافي.
-
مثال
:حساب فيبوناتشي متكرر بدون حفظ.
خوارزميات تعتمد على التباديل.
-
مثال
:حل مشكلة بائع السفر باستخدام القوة الغاشمة.
الفرق بين O(n log n) و على) يصبح صارخا ل ن = 10 :قد يتم تنفيذ الأول في غضون مللي ثانية، في حين أن الأخير قد يستغرق أيامًا.
تؤدي الخوارزميات أداءً مختلفًا استنادًا إلى تكوينات الإدخال. تحليل جميع الحالات يضمن المتانة:
قد يختار مُحسِّن استعلام قاعدة البيانات بين الانضمام إلى التجزئة ( O(n + m) ) والانضمام إلى الحلقة المتداخلة ( O(نانومتر) ) بناءً على توزيع البيانات. يعد تحليل أسوأ الحالات أمرًا بالغ الأهمية بالنسبة للأنظمة الحرجة للسلامة (على سبيل المثال، برامج الطيران)، حيث تكون عدم القدرة على التنبؤ أمرًا غير مقبول.
يمكن حل نفس المشكلة باستخدام خوارزميات مختلفة. على سبيل المثال، يمكن حل مشكلة البحث عن قيمة مستهدفة في قائمة القيم باستخدام خوارزميات مختلفة، مثل البحث الخطي، أو البحث الثنائي، أو البحث في جدول التجزئة.
يقارن الجدول أدناه تعقيدات الوقت والمكان لهذه الخوارزميات للبحث عن قيمة مستهدفة في قائمة ن قيم.
يعتمد اختيار الخوارزمية على حجم المشكلة وخصائص الإدخال والموارد المتاحة. على سبيل المثال، إذا كانت القائمة صغيرة وغير مرتبة، فقد يكون البحث الخطي هو الخيار الأفضل. إذا كانت القائمة كبيرة ومرتبة، فقد يكون البحث الثنائي هو الخيار الأفضل. إذا كانت القائمة كبيرة وغير مرتبة، فقد يكون البحث في جدول التجزئة هو الخيار الأفضل.
يقوم التحليل المستهلك بحساب متوسط الوقت على مدى سلسلة من العمليات.
-
مثال
:تتضاعف سعة المصفوفات الديناميكية عند الامتلاء. في حين أن واحدا
يدفع
قد تستغرق العملية
على)
مع مرور الوقت، تظل التكلفة المستهلكة
O(1)
.
خوارزميات مثل
مونت كارلو
و
لاس فيغاس
استخدم العشوائية لتحقيق الكفاءة.
-
مثال
:يحتوي اختبار ميلر-رابين الأولي على ضمانات احتمالية ولكنه أسرع من الطرق الحتمية.
بعض المشاكل (على سبيل المثال، قابلية الإرضاء المنطقية) هي NP-كامل ، مما يعني أنه لا يوجد حل معروف لزمن كثير الحدود. يساعد إثبات اكتمال NP من خلال الاختزالات في تصنيف الصعوبة الحسابية.
أن على) يمكن أن تصبح خوارزمية التجميع بمثابة عنق زجاجة لمجموعات البيانات الضخمة، مما يدفع إلى التحول إلى أساليب تقريبية مثل أشجار kd ( O(n log n) ).
تعتمد أنظمة المفتاح العام على صلابة O(2) المشاكل (على سبيل المثال، تحليل الأعداد الصحيحة) لمقاومة الهجمات.
تعطي محركات العرض في الوقت الفعلي الأولوية O(1) خوارزميات لمحاكاة الفيزياء للحفاظ على أكثر من 60 إطارًا في الثانية.
التنازلات مهمة:
-
الوقت مقابل فضاء
:استخدم خرائط التجزئة (
O(1)
البحث) على حساب الذاكرة.
-
البساطة مقابل الأمثلية
: فرز الإدراج (
على)
) قد يكون مفضلًا لمجموعات البيانات الصغيرة والمرتبة تقريبًا.
بالنسبة للخوارزميات المتكررة، نموذج العلاقات التكرارية وقت التشغيل. على سبيل المثال، دمج أنواع التكرار:
[ T(n) = 2T(n/2) + O(n) ] يحل إلى
O(n log n)
عبر
نظرية ماستر
.
الاختبار التجريبي يكمل التحليل النظري. تكشف أدوات تحديد الملفات الشخصية (على سبيل المثال، Valgrind، وperf) عن الاختناقات في العالم الحقيقي.
بايثون
تعريف المجموع الخطي (arr):
المجموع = 0
للرقم في arr:
المجموع += العدد
إجمالي العائد
def quadratic_sum(arr):
المجموع = 0
لأني في arr:
لـ j في arr:
المجموع += i * j
إجمالي العائد
بينما على) ملخصات الثوابت، أ ن100 قد تكون الخوارزمية أبطأ من ن0.01 خوارزمية للتطبيق العملي ن .
أن O(n log n) قد يكون أداء الخوارزمية ضعيفا على) ل ن = 10 بسبب النفقات العامة.
دالة فيبوناتشي المحفوظة ( على) قد تتعطل (المساحة) عند المدخلات الكبيرة، على عكس الإصدار التكراري ( O(1) فضاء).
BST متوازن ذاتيًا ( O(log n) (البحث) أكثر أمانًا من اختبار BST العادي ( على) (في أسوأ الأحوال) للبيانات غير الموثوقة.
يعد تحليل تعقيد الخوارزمية بمثابة البوصلة التي توجه المطورين عبر المشهد الواسع للكفاءة الحسابية. بالنسبة لطلاب MTSC7196، فإن إتقان هذا التخصص يربط بين المعرفة النظرية والخبرة العملية. من خلال تحليل متطلبات الوقت والمكان، ومقارنة الحدود المقاربة، والتنقل بين المقايضات في العالم الحقيقي، يمكن للمطورين إنشاء أنظمة قابلة للتوسع بسلاسة وتعمل بشكل موثوق.
في عصر يتميز بالابتكار القائم على البيانات، أصبحت القدرة على التمييز بين O(n log n) و على) الحل ليس أكاديميا فقط، بل هو ضرورة استراتيجية. مع تقدمك في دراستك، تذكر: أن تحليل التعقيد لا يقتصر فقط على الأرقام والرموز. يدور الأمر حول فهم نبض الحساب نفسه.
منذ عام 2019 ، تأسست Meet U Jewelry في قاعدة قوانغتشو ، الصين ، قاعدة تصنيع المجوهرات. نحن مؤسسة مجوهرات تدمج التصميم والإنتاج والبيع.
+86-19924726359/+86-13431083798
الطابق 13 ، البرج الغربي لمدينة غوما الذكية ، رقم 33 Juxin Street ، Haizhu District ، Guangzhou ، الصين.