الخوارزميات الحلقه العاشرة Big-o Notation Time Complexity
بسم الله الرحمن الرحيم
سنتعلم كيفية حساب تعقيدات الوقت بالأمثلة خلال هذة التدوينة
1- int i =0;
while(i<=n)
system.out.println("*");
i=2*i;
أول جزء لدينا هو int i=0 هو ثابت سيكون big o له هو o(1)
وثاني جزء هو while في بداية التفكير سنقول انها ستنفذ n من المرات أذن big o هو o(n) لكن هذا غير صحيح ستجد أن i مضروبه في العدد 2 وهذا سيقلل من عدد مرات التكرار أذن سيكون big o هو o(logn)
ولحساب big o للكود سنقوم بأختيار أسوا حاله أذن ال big o لتنفيذ الكود سيكون
أول جزء لدينا هو i=n أذن big o سينفذ عدد n من المرات فيكون o(n)
ثاني جزء لدينا هو while بداخلها for
سيكون while مع القسمه علي العدد 2 بتقليل التكرار كما سبق ويصبح big o لهذا الجزء o(log n ) وبالنسبه لل for تبدأ من الصفر وتزيد بمقدار 1 وهي اقل من n أذن ستنفذ عدد n من المرات ويصبح big o لها هو o(n)
ليصبح ال big o للتكرار هو
o(log n) * o(n) =
o(n log n)
وهذا اسوأ احتمال لتنفيذ الكود فيصبح big o للكود هو
ليست هناك تعليقات:
إرسال تعليق