تواصل معنا

كورس جافا سوينج
كورس أختبار البرمجيات
الان ومجانا لمدة شهر اللهم ارفع عنا البلاء والوباء
كورس لغة الدارت والفلتر
عن المدونة
Mohon Aktifkan Javascript!Enable JavaScript

الجمعة، 29 مارس 2019

الخوارزميات الحلقه العاشرة 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 لتنفيذ الكود سيكون 

o(logn)

-----------------------------------------------------------------------

 2- int i =n;

while(i>0)

for(int j =0 ; j<n ; j++) 

system.out.println("*");

i=i/2; 

أول جزء لدينا هو 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 للكود هو 

o(n log n)

لمتابعة الحلقة السابقة

الخوارزميات الحلقة التاسعة Big-o Notation 

لمشاهدة الحلقة التالية 

الخوارزميات الحلقه الحادية عشر Big-o Notation Space Complexity  

ليست هناك تعليقات:

إرسال تعليق