يوجد انواع كثيرة لهذه الحسابات كيف احسبها و اميز بين هذه الانواع !!؟
ما هي الكيفية لحساب درجة التعقيد لخوارزمية معينة؟
هناك نوعان من درجة التعقيد: الزماني و الفضائي
- فالتعقديد الزمني يدل على العلاقة التي تربط الزمن الآزم لاكمال الخوارزمية بحجم البيانات (علاقة بدلالة n الذي يمثل حجم البيانات).
تمثل هذه العلاقة بحرف O كبير, وهي تمثل درجة التعقيد في حالة البيانات الكبيرة (الملانهاية), يعني لوكانت درجة التعقيد n^2+ n فاننا نكتب (O(n^2
في العادة العمليات البسيطة (+, -, *, ...إلخ) و قرائة الهاش ( Hach) تستهلك (O(1.
أما بالنسبة لحلقات التكرار مثل for, while, repeat فهي في العادة ذات تعقيد (O(n مثلا لوكانت لديك for في وسط for سوف تحتاج إلى (O(n^2
العمليات التي تحتاج إلى (O(log n تكون في العادة العمليات الثنائية (binnary) مثلا عندما تبحث في بنية Tree
للحساب يمكنك استعمال طريقة بسيطة وهي ان تكتب البرنامج وتقوم بكتابة امام كل سطر درجة تعقيده وجمع التعقيدات مع بعض ثم اخذ أكبير قيمة.
يمكنك الاطلاع على بعض الجداول هنا:
سؤال مشابه لسؤالك هنا :
اتمنى تكون مفيدة
التعليقات