Skip to content
Get App

Data Structure: Lab05 (Time Complexity)

شرح تفصيلي لمفهوم تعقيد الوقت (Time Complexity) في هياكل البيانات، يتناول درجات Big O المختلفة مع أمثلة عملية بلغة جافا وطريقة تحليل الخوارزميات بدل قياس الزمن بالثواني.

Key Takeaways

  • تعقيد الوقت يقيس نمو الزمن مع نمو حجم المدخلات وليس الزمن المطلق
  • العمليات الثابتة O(1) هي الأفضل، والحلقات المتداخلة ترفع التكلفة بشكل كبير
  • قياس الزمن بالثواني غير موحد لأنه يعتمد على عتاد كل جهاز، لذا يُعتمد تحليل عدد العمليات
  • يُحلَّل عادةً أسوأ سيناريو للخوارزمية للحصول على حد أعلى موثوق للتكلفة

What the video covers

  • مراجعة لمفهوم تكلفة العمليات في هياكل البيانات مثل الإضافة والحذف في القوائم المرتبطة والمصفوفات
  • توضيح أن تعقيد الوقت يصف كيف ينمو زمن التنفيذ مع زيادة حجم البيانات وليس الزمن الفعلي بالثواني
  • شرح الدرجات الأساسية: الثابت O(1) والخطي O(n) واللوغاريتمي O(log n) والتربيعي O(n²) والتكعيبي والأسّي
  • أهمية تحليل الخوارزمية نظرياً لأن زمن التنفيذ الفعلي يختلف باختلاف الهاردوير والجهاز
  • تجربة عملية بقياس الزمن باستخدام System.nanoTime مع توضيح أن النتائج تتغير من جهاز لآخر
  • التنبيه إلى أن التحليل يركز على أسوأ الحالات (Worst Case) وليس أفضلها
  • شرح كيفية حساب عدد العمليات سطراً بسطر وجمعها ثم تحويلها إلى رمز Big O
  • تحليل أمثلة على حلقات متداخلة وحلقات متتالية ومتى تضرب التكلفة بـ n
  • الإشارة إلى الاستدعاء الذاتي (Recursion) وأثره على التعقيد واستهلاك الذاكرة
  • الإعلان عن تفصيل حساب التعقيد لمثال من الكتاب في الجزء العملي

Answers

Questions about this video

لماذا لا يُعتمد قياس الزمن بالثواني لتحليل الخوارزمية؟

لأن زمن التنفيذ الفعلي يعتمد على الهاردوير الخاص بكل جهاز، فتختلف النتائج من حاسوب لآخر. لذلك يُحلَّل الكود نظرياً بحساب عدد العمليات لمعرفة كيف ينمو الأداء مع حجم البيانات.

ما الفرق بين O(1) وO(n)؟

O(1) تعني أن عدد العمليات ثابت بغض النظر عن حجم البيانات، مثل الوصول لعنصر في مصفوفة. أما O(n) فتعني أن عدد العمليات يتناسب خطياً مع عدد العناصر، مثل المرور على كل عناصر المصفوفة بحلقة واحدة.

متى تكون الخوارزمية من نوع O(n²)؟

عندما تحتوي على حلقة داخل حلقة وكل منهما تمر على كامل العناصر، فيصبح عدد العمليات تقريباً مربع عدد العناصر. مثال ذلك الحلقات المتداخلة التي تُنفَّذ n مرة لكل تكرار من الحلقة الخارجية.

Full Transcript — Download SRT & Markdown

00:02
Speaker A
السلام عليكم ورحمة الله وبركاته. اللهم انفعنا بما علمتنا وعلمنا ما ينفعنا. اللهم زدنا علمًا ونفعًا.
00:09
Speaker A
ايه، في اللابات الماضية كنا نكتب داتا استراكشر ونقول مثلًا اتفيرست وبنحكي عن التكلفة تبعتها، مثلًا إنه كنت أقولكم إنه العمليات اللي الاتفيرست مثلًا في السنجل لينك ليست كانت بتكلفني واحد، صح؟ اللي هو ازا كونستانت تايم.
00:28
Speaker A
أو على سبيل المثال إنه الريموف لاست بتكلف ان. وعلى سبيل المثال كنت أقولكم لو في مليون [تنحنُح] عملية عندي قديش حيكون في أنا عندي تكلفة لو أنا بدي أزيح اللي هو الأراي كلها للأخير. أو على سبيل المثال عشان أرجع الـ البوينتر اللي كان موجود
00:45
Speaker A
على الـ الهيد وأخليه على الـ العنصر اللي قبل الأخير عشان أحذف العنصر قديش بتكلفني من عمليات؟ فكنا نقول إنه أنا لو عندي مليون عنصر حتكلفني 999999 مليون عنصر 900999.
01:01
Speaker A
إلى آخره يعني. فبتكلفني التكلفة هذه الكبيرة اللي هو عدد عناصر ان. تمام؟ فاليوم بدنا نفهم فعلًا شو معنى الكلام هذا؟ ولما أنا أقول الألجوريثم هذه تكلفتها بيج الـ أو أوف ان الكومبلكسيتي، أنا مش بحكي إنها بتاخذ ثانية أو ثانيتين، لأ. أنا بحكي كيف وقت
01:18
Speaker A
التنفيذ الإكسيـ الإكسيكيوشن تبعي كيف بيمشي؟ كيف بينمو؟ لما حجم البيانات بيكبر. فعلًا البيانات في شتى أشكالها بتكون أول شيء فاضية.
01:30
Speaker A
بعد هيك بتصير البيانات سمبل. على سبيل المثال في عشر ايه، بتكون مثلًا في عشر نسخ من البيانات هذه إلى أن تصل إلى 100، إلى أن تصل إلى مليون. وكل مرة بتزيد فيها البيانات إحنا بدنا نشوف كيف النمو تبع الدالة أو كيف
01:45
Speaker A
اللي هو التايم كومبلكسيتي بينمو. وفي عندي أنواع، يعني في عندي كذا نوع، مش نوع واحد.
01:52
Speaker A
[تنحنُح] ايه في عندي كذا نوع أنا. تمام. تمام. فأنا في عندي كذا نوع، تمام؟ اللي هو أول شغلة في أنا عندي الكونستنت، وإحنا بنقول واحد، على سبيل المثال هي ما في الحقيقة مش بالضرورة تكون واحد يعني.
02:23
Speaker A
يعني ممكن تكون اثنين، ثلاثة، اللي هو ثلاث عمليات بتتم، أربع عمليات، تمام؟ فالأربع عمليات فعليًا هو رقم، رقم ثابت، فطلما الرقم الثابت بيطلع عندي من العمليات ما في عدد معين أنا بمشي عليه بشكل متكرر اللي هو بيوصلني لأنها كل
02:39
Speaker A
العناصر. فبنحكي عنه كونستنت، عدد ثابت من العناصر، يعني فيكسد أماونت أوف وورك. يعني الإكسكيوشن.
02:47
Speaker A
يعني العمليات محدودة، ما في تكرار، ما بمشي على كل العناصر، مش مضطر. القيته هذه أخف درجة هي كونستنت، وهي أفضل أداء.
02:57
Speaker A
يعني. أفضل أداء إكلي من من درجات الإكسكيوشن. وراح نحكي متى يعني بتكون اللي هو درجة واحد، وفي عندي اللي هو اللوجا، لوغاريثم، لوغاريثم، تمام؟ في دالة اللوغاريثم أكبر من الكونستنت الدرجة، الدرجة وحدة.
03:14
Speaker A
ومتى بتكون؟ في إلها اللي هو دور، على سبيل المثال لما أنا أقول إنه أنا عندي فور لوب، تمام؟ بس الفور لوب أنا ما بمشي عليها كلها، على سبيل المثال ها، قديش بمشي؟ في يعني حسبة معينة إلها، يعني يعني على
03:30
Speaker A
سبيل المثال. لما في في الباينري سيرش أو في بعض الألغوريثمك. في مثلًا إنه. بحسب الميد، فنص الأري بيطير، فبحسب الميد للميد، فنص الأري للنص الثاني بيطير، فبحسب الميد للميد للميد، ف وهكذا، ف. هذه العملية اللوج، بت، يعني من درجة
03:50
Speaker A
لوغاريثمك. تمام؟ واللينير، طبعًا لو أنا في عندي فور لوب وأنا لازم أمشي على كل العناصر بتكلفني إن.
03:58
Speaker A
ولو أنا في عندي إن لوج الإن، كيف هذه؟ إن لوج الإن يعني بيكون في فور لوب جوات فور لوب والفور لوب اللي جوات الفور لوب الأولى بتعمل عملية اللي هو زي زي ال- اللوغاريتمية الطبيعية بس جوات لوب، فاهمين كيف؟
04:15
Speaker A
طيب الكوادراتك. لوب جوات لوب، كل العناصر بده يلف على كل العناصر مرتين بدل مرة، فبصير إن تربيع.
04:24
Speaker A
والكوبك اللي هو ثلاث لوبات جوات بعض. والإكسبونينشال أسوأ وأخطر نوع من اللي هو من ال- اللوغاريثمتك، يعني يعني فعليًا نشرد منها، ومتى بتصير في عمليات الريكرجن تكسر ال- الشيء هذا.
04:45
Speaker A
فعليًا بتكون الدالة بتروح بلا رجعة يعني فعليًا، الشيء هذا سيء جدًا. فهي تمثيلهم رسميًا، تمام؟ الكونستانت، يعني الدالة في بدايتها في بدايتها بتمشي وبتستقر في وقت ما عند نقطة معينة بتستقر وبتضلها مستقرة.
05:03
Speaker A
تمام؟ إيه زي هنا زي هنا. شايفين كيف؟ يعني كانت ماشية هيك بعدين طلعت باختلاف معين من الكونستانت باختلاف معين من الكونستانت إلى إنه ثبتت على درجة واحدة في النهاية، تمام؟ إيه تمام، يعني زي خط مستقيم يعني.
05:25
Speaker A
هذه الأمور نظرية فالدكتورة راح تشرح لكم إياها وأنا أصلًا بالعاده بنزل اللاب بعد ما الدكتورة تشرح، تمام؟ أنا معني كثير بال- الشيء النظري.
05:37
Speaker A
ف- هيا نعمل شيء نظري. نعلمكم على الأشياء هذه نظ- يعني عمليًا مش نظريًا. تمام.
05:46
Speaker A
[تنهّد] طبعًا راح أقولكم كيف الطلاب بيفكروا التايم كومبلكسيتي في بداية الأمر يعني الطلاب كانوا بيفكروا إنه الكومبلكسيتي بطبيعة أمرها هو عبارة عن تايم حقيقي ولا شيء مش تايم حقيقي.
06:10
Speaker A
راح نحكي عن الموضوع هذا الوقت. [سعال] إيش نسمي المشروع تبعنا؟ إحنا بنحكي عن الكومبلكسيتي صح؟ [أصوات شخير] يعني إحنا ممكن نسميه كومبلكسيتي.
06:30
Speaker A
هذا الصندوق. طيب. إحنا بنحكي عن دالة قاعدين. [أصوات شخير] ببلك ستاتيك. تمام. طيب إحنا في عندنا اللي هو شغلة قبل ما نبلش أصلًا. بقولك موضوعنا اليوم مش إنه أي برنامج أسرع فما بنقدرش نحكي إنه أي برنامج أسرع البرنامج الفلاني أو البرنامج
07:13
Speaker A
الفلاني. فالسؤال الأهم لو أنا عندي في بيانات صارت أكبر بـ 10 مرات أو بمليون مرة شو بصير في الخوارزمية تبعتي؟ هل حتضلها بنفس الأداء ولا الأداء تبعها حيقل؟ على مستوى الوقت يعني.
07:27
Speaker A
تمام؟ يعني إنه الشيء على مدار الوقت بيزيد تمام؟ فالبيانات بتزيد فإيش يكون السلوك تبعها؟ طيب.
07:39
Speaker A
الوقت في مثلًا حدا حيسأل إحنا ليش ما بنقيس اللي هو الوقت بالثواني وخلاص التايم كومبلكسيتي.
07:46
Speaker A
فعلى سبيل المثال هاد نعمل اللي هو هنا ميثود بسيطة تمام. ايش نسميها هي بابليك ستاتيك وانتم عارفين ليش بنحكي ستاتيك.
07:59
Speaker A
فويت برينت نمبرز تمام. وهنا بدي احط بين الاقواس انتجر ان عشان نحكي احنا شو بنقصد بالان تبعتنا.
08:12
Speaker A
وهي فور لوب. [سعال] تمام. انتجر اي زيرو بشكل مبدئي اي اقل من مين من ان.
08:24
Speaker A
والاي بي بلس وبنمشي. اي اس اوت تمام والاي. خلصنا. وهلقيت في المين انتم بتعرفوا في المين عشان نحسب التايم ايش بدنا نسوي.
08:43
Speaker A
فعشان احسب التايم هي لونج تمام. هي لونج وهي ستارت في بداية التايم يعني قبل ما يبلش التايم اصلا.
08:56
Speaker A
هي سيستم دوت مين ايش الدالة اللي بنستخدمها عشان احنا نفحص التايم احنا بنعرف انه سيستم دوت كرنت تايم بالملي طبعا لمين بترجعني.
09:08
Speaker A
[تنحنُح] وعشان اجيب التايم للدالة اللي انا بدي انفذها التايم ولكن احنا بدنا نفهم انه التايم اللي انا بدي اجيبه الوقت ليش انا ما بقدر استخدمه حقيقة في حقيقة الامر يعني.
09:23
Speaker A
يا سيدي هي الف. تمام. هي لونج مرة ثانية بدي احط فيها ال ان تبع التايم وزي ما قلنا سيستم دوت كرنت تايم مرت عليكم الكلام هذا كله مر عليكم بجافا واحد واثنين.
09:42
Speaker A
فأنا بنقول أنا هنا التوتال تايم. إيش بدي أقول؟ الإند آخر وقت زاد عندي ناقص الستارت.
09:57
Speaker A
إيش رأيكم؟ زي ما قبلها. أه ما هو ناقص هو بينفع أعمل ناقص زي هيك خليني أحطهم في قوس.
10:07
Speaker A
أحنا كوكو كنت كونتنيشن بالبلاس أوكي زابطة بس إنه ناقص طيب، [ضحك] نطبع [تنحنُح] ونشوف إيش النتيجة رح تكون عندي.
10:27
Speaker A
التوتال تايم 54. طبعًا نحن بنحكي عن إشي بالملي سكند، تمام؟ نطبعها مرة ثانية. نشوف ثاني طويل.
10:37
Speaker A
29، شفتوا كيف النتيجة تغيرت. نطبعها مرة ثالثة. 35. نطبعها مرة رابعة. 1 2 3، ها؟ هي 29، نطبعها مرة خامسة. ملاحظين أنتم شو بصير؟ كل مرة عند الرقم بيطلع شكل.
10:56
Speaker A
طب هو بيزبط هيك مبدئيًا يعني؟ ما بيزبط. طب لو حدا منكم جرب الكود هذا عنده لا حيطلع عنده 29 ولا حيطلع عنده 30 ولا حيطلع عنده مش حيطلع عنده الأرقام اللي أجت عندي، ليش؟ التايم هان والسرعة في أداء الكود بيعتمد على
11:13
Speaker A
الهاردوير الخاص في الجهاز. فلو أنت لابتوبك إتش بي حيطلع عندك التايم مختلف. لو لابتوبك إيه إم إس أي رح يطلع عندك التايم مختلف. لو إن لابتوبك أنت إيه فيكتاس أو لابتوبك قول معي لينوفو حتطلع عندك الأرقام مختلفة. إذًا
11:31
Speaker A
الهاردوير بيعتمد بشكل أساسي على الوقت اللي بيكلفني علشان أنفذ اللي هو ال- الدوال أو ال- فانكشنات.
11:42
Speaker A
عشان هيك إحنا ما لجأنا لأن أنا أحسب الوقت قبل وبعد وأطرحهم من بعض وأطبع وأطرحهم. هذه يعني مش طريقة موحدة تناسبني في كل الأجهزة. طب في كل الأجهزة. طب إيش الطريقة المناسبة اللي أنا حتناسبني في كل الأجهزة؟ إني أنا
11:59
Speaker A
أحسب الكومب- لكسيتي تمام؟ وأعرف كيف النمو تبع ال- ال- دالة مستقبليًا من خلال الحسبة تبعتي.
12:09
Speaker A
تمام؟ تمام. يعني هذا بشكل مبدئي. طيب. وزي ما قلت لكم إنه لو أنا شغلت يعني شغلت الكود هذا على جهازي. وإنتوا شغ- يعني الأصل إنكم تجربوه، تشغلوه على أجهزتكم وتشوفوا إنه الرقم هذا مش رح يطلع عندي وعندكم نفس ال- إشي.
12:26
Speaker A
وقلنا ال- هاردوير بيختلف، السي بي يو بيختلف من جهاز لجهاز. في مثلًا في الباك جراوند في مثلًا بتلاقي إنه في برامج شغالة على سبيل المثال.
12:36
Speaker A
عشان هيك الوقت الفعلي مفيد للتجارب. بس مش الطريقة الأساسية اللي إحنا بنعتمدها عشان نحلل الخوارزمية. بدنا نحلل الخوارزمية، بدنا نحسب الحسبة اللي هو كامل الكومبلكسيتي تايم كومبلكسيتي.
12:50
Speaker A
طيب. هلقيت الإكسكيوشن تايم زي ما حكينا فهو مش مساوي الريليابيلتي ميجر اللي أنا حاسبها.
12:57
Speaker A
يعني الرقم اللي بيطلع عندي هنا فعليًا مش هو اللي أنا يعني على أساس إني بدي أحسبه.
13:03
Speaker A
مش هو الوقت الحقيقي الفعلي للأداء هذا. فبدل ما نحسب اللي هو بالملي سكندز، بدنا إحنا نطلع إيه الكود نفسه ونشوف قد إيش كم عملية الكود هذا مثلًا بيجرب. على سبيل المثال حاجي في وقت آخر أقولكم الكود هذا كم بيكلفني.
13:24
Speaker A
تمام؟ وحأقولكم إنه أي فور لوب في الحياة تكلفتها بيج ال او اوف ان تمام واحد حيجي يقولي شو يعني بيج ال او اوف ليش حكيت انا مثلا بيج ال او اوف ان هنا يعني على سبيل المثال لانه او يعني
13:39
Speaker A
حيقولي طيب انا عندي هذه تتنفذ مرة واحدة وانا احكيلكم عن الية الحسبة بس انا بدي احكيلكم بشكل سريع حاليا وهلقيتها في ال عملي راح نكمل ونشوف كيف نحسب كل حاجة لحال هلقيتها الانتجر اي بيساوي صفر كم مرة بيتم تنفيذها خلال الفور لوب هذه
13:58
Speaker A
بيتم تنفيذها مرة واحدة بس اه هي واحد ال اي اقل من ان كم مرة بيتم تنفيذها خلال اللوب مش كل ما يزيد بواحد بيرجع عليها وبيفحص عشان يعرف هل الشرط هذا يوقف ويطلع برا اللوب ولا لا صح مش كل مرة بده يحسب اه
14:18
Speaker A
وهذا كم مرة بده يزيد كان صفر حيدله يزيد لحديت ايش ما يصل ل ان صح حيزيد ان من المرات طيب وجملة الطباعة كم مرة راح تطبع راح تطبع بعدد مين بعدد اللي هو ان عدد اللفات فاصبح انه انا عندي هي عملية
14:37
Speaker A
عمليتين ثلاث عمليات بيتكرروا بشكل يعني بشكل دوري فايش بقول انا زائد ثلاثة ان طيب ايش رايكم في الكلام هذا هذا الكلام بيقولي بيج ال او اوف ان راح احكيلكم عن الكلام هذا هالوقت تمام وبننسخ هذا كله بننسخه هنا
15:02
Speaker A
وهذا الكلام ايش بده يساوي بيج ال او اوف كونستانت زائد بيج ال او اوف مين اوف ثلاثة ان طيب شو رايكم الكونستانت مقابل العدد ان من التكرارات ولا يسوى شيء صح ايش بضل عندي انا بيج ال او اوف ان صح
15:26
Speaker A
يعني بيج الـ O أوف ثلاثة N وإيش رأيكم؟ الثلاثة لها قيمة؟ ما لهاش قيمة بس أنا أنا يعني أنا عرفت إنه سلوك الدالة هذه إيش؟ لينير أنا عرفت إنه سلوك الدالة هذه لينير فـ بيطلع عندي بيج الـ O
15:45
Speaker A
أوف N تمام يا جماعة الخير هي الحسبة بالتفصيل قلت لكم كيف الثلاثة N اجت وكيف الواحد اجت قد ما تلف اللوب هو الـ I انشلايز باي وان يعني حـ حيتم مرة واحدة بعد هيك ما راح أرجع أعمل انشلايز للـ I
16:03
Speaker A
والـ I يساوي صفر أول ما أنا فتت على اللوب تم إنشائها بعد هيك ما راح يتم إنشائها مرة ثانية بل راح يتم النظر للطرف الأيمن منها المقارنة كل مرة حيصير في مقارنة إذاً أنا بقول إنه عملية المقارنة بتكلفني
16:18
Speaker A
حبة عملية واحدة ولكن عشان التكرار هذا حتكلفني N من المرات والـ I بلس بلس هي بتكلفني بالعاده كونستانت واحد ولكن عشان الفور لوب حتكلفني N وعملية الطباعة بالعاده بتكلفني إيه عملية واحدة ولكن عشان أنا في فور لوب زي ما حكيت حتكلفني N إذاً N وN وN ثلاثة
16:40
Speaker A
N وعملية واحدة كونستانت ما لا تذكر يعني مش راح تذكر في المستقبل إيه في الـ في الحسبة تبعتنا ليش؟ قلنا لكم إحنا معنيين نعرفها هي لينير ولا هي مش لينير هذا بشكل أولي وبشكل أساسي هالوقت خلينا يعني خلاص إحنا قلنا إنه أنا الستارت تايم
17:01
Speaker A
والاند تايم مش راح ينفعني وأنا بدي أحسب الحسبة تبعتي تكون راح تكون بعدد مرات الإمبلمنتيشن اللي بتتم فـ هي هي عندي انتجر اكس إيش بتساوي؟ خمسة تمام؟ إيش رأيكم؟ هذه قديش بتكلفني؟ هذه عملية كونستانت، تمام؟ يعني حأقول هيك
17:29
Speaker A
كونستانت. خلصنا؟ تمام. طيب الإكس بلس بلس قديش بتكلفني؟ كونستانت. صح؟ طيب. وهذه عملية إنكريمنت، يعني أنا عملية ال ديكلاريشن بتكلفني كونستانت، عملية الديكريمنت بتكلفني كونستانت، على سبيل المثال الإف، الإف يعني لحد الآن هي مش عملية، ما صار أي عملية، ما صار أي تغير،
18:05
Speaker A
هي إف لحد الآن، أما لما أنا أفوت وأعمل عملية كومباراجون هنا عملية مقارنة، تمام؟ وخلي الأقواس هذه مسكرة بس، هنا الإف ستيتمنت كم مرة حتتم؟ حتتم مرة واحدة إلا إذا كانت جوات فور لوب الوضع بيختلف.
18:22
Speaker A
أنا حاليًا بتكلم عن إف ستيتمنت، الكومباراجون اللي صار جوات كم بيكلفني؟ هذا هذا الإكس أكبر من 10، قديش إيش تكلفتها؟ بتكلفني عملية واحدة، بتتم مرة واحدة.
18:34
Speaker A
فبتكلفني واحد. تمام؟ فالكومباراجون بتكلفني كمان واحد، فنحن مش مهتمين هل الأسايمنت أخذ واحد نانو سكند أو ثلاثة، المهم إنه أنا ما بعتمدش على إن، ما فيش عدد لفات بيصير عندي، يعني نحن لحد الآن في ال في السليم، يعني طالما أنا
18:52
Speaker A
عندي كونستانت الموضوع. هذا بالنسبة للكونستانت، هذا كله كونستانت، تمام؟ إيش في كمان حاجات؟ على سبيل المثال إكس دي كري ديكريمنت، إن إنكريمنت كومباراجون عملية مقارنة، يساوي يساوي كله هذا إيش بده بده يكون عندي؟ بده يكون عندي بواحد، إف ستيتمنت إلس مش عارف مين
19:14
Speaker A
لو انا مثلا على سبيل المثال هي انا زي ما في عندي الس تمام ونقول مثلا اكس بلس بلس قديش هذه بتكلفني اذا فات على الاكس حيفحص اول شيء الاكس صح هذه بتكلفني كونستانت طيب لو ما توافق الشرط حيروح على الس حيروح يعملي كمان
19:32
Speaker A
عملية هنا صح صح يبقى قديش عندي عمليتين طيب والعمليتين اصلا هذول ايش هم اصلا كونستانت شفتوا معي ما اختلفناش ولو انا كان في عندي اف ستيتمنت اف الس وكان انا عندي جواتها فور لوب ال اف الس تمام ايش الموضوع حيكون عندي انا بشتغل على
19:52
Speaker A
اسوء احتمال مش على احسن احتمال فلو انا عندي كمان هنا اللي هو على سبيل المثال اللي هو ال الس تمام وعلى سبيل المثال اكس اقل من خمسة ورحنا حاطين هنا فور لوب ايش رايكم بتعرفوا ايش بدي اسوي عشان اعمل الحسبة
20:17
Speaker A
وفي هنا طبعا تكملة بدي احكي لكم بدي احكي لكم مثال احنا ايش بنحسب احنا بنحسب بناءا على ال وورست كيس مش على البيست كيس كيف ال وورست كيس وكيف البيست كيس ال وورست البيست كيس هنا احنا ننزل شوي اللي
20:32
Speaker A
فوق خلصنا منه ال البيست ال بيست كيس عندي احسن احتمال انه يفوت يعمل كومبارزون هنا تمام وبقولكم خلصنا البيست كيس انه يفوت يعمل مقارنة ديكريمنت ويطلع ما يشوفش لا هذه ولا هذه طيب ايش ال وورست كيس يفوت هنا مقارنة
20:57
Speaker A
يلاقي المقارنة ما زبطتش يروح على ال الس يروح يفوت هنا مقارنة والله زبطت ويخش فور لوب حيصير احسب بناءا على مين انا حاشوف قديش هذه بتكلفني كومبلكسيتي بالان وحصير انا عندي الداتا هذه كلها بتكلفني بالـ n.
21:13
Speaker A
ولقيت هلقيت نجيب سيرة الـ n. إحنا خلصنا من الكونستانت، بس أنا بدي أقولكم إيش الفرق بين الـ بيست كيس والـ وورست كيس.
21:20
Speaker A
تمام؟ ففي الكومبلكسيتي إحنا بنفحص الـ وورست كيس. طيب، حكينا عن الكونستانت، ماشي. طيب، نيجي هالوقت نتكلم عن مين؟ نيجي نتكلم عن الـ زي ما قلنا البيج الـ O أوف n.
21:38
Speaker A
تمام؟ الكونستانت تايم حكينا عنه. إيه طيب، في شغلات ثانية بالكونستانت تايم إحنا لحد الآن ما جبنا سيرتها.
21:49
Speaker A
طيب. [تنهّد] لقيت لو أنا في عندي أراي [تنهّد] نمس يساوي نيو بدنا نفترض إنه هي مليانة مبدئياً.
22:11
Speaker A
النمس هذه هيك لحال. يا سيدي هي بتساوي واحد. قديش بتكلفني؟ تمام. شايفين النمس زيرو؟ هي بتكلفني واحد. عملية الوصول نفسها لشيء معين بتكلفني جوات الـ الـ أراي بتكلفني واحد. وهلقيت بدنا نفترض إنه الأراي مليانة وأنا مليتها.
22:35
Speaker A
هذه بتكلفني واحد. وعملية الأساين بتكلمني بتكلفني كمان واحد. بس كونوا خذوا بالكم عملية الأساين بتكلفني واحد.
22:44
Speaker A
وخصوصاً ما أتكلم عن شغلة إلها علاقة بالريفرنسز أو شغلة إلها علاقة بالأوبجيكتس والأمور هذه.
22:50
Speaker A
طيب، يعني هذه بتكلفني اثنين، يعني برضه ما رحناش لبعيد. إحنا بنحكي عن بيج الـ O أوف 1.
22:56
Speaker A
تمام؟ لأنه بيج الـ O أوف 2 هو بيج الـ O أوف 1 هو كونستانت.
23:04
Speaker A
طيب. يعني أنا لو في أنا عندي 10 عناصر. أو أنا عندي مليون عنصر. التكلفة تبعت هذه حتتغير؟ لا، حتضلها بـ الـ O أوف 1.
23:19
Speaker A
تمام؟ فـ بـ الـ O أوف 1 طبعًا يا شباب عشان بس تكون الأمور واضحة، مش معناها إنه العملية حرفيًا هي عملية 1. يعني تمام؟ أنا قلت لكم هنا إنه أنا في عندي عمليتين بس كومبلكسيتي هنا بـ الـ O أوف 1.
23:38
Speaker A
طيب. فـ يعني بشكل أو بـ يعني الأصح خلينا نفتح هنا إيش؟ بينت. أنا عندي هي التايم.
23:56
Speaker A
أنا عندي هنا عدد العمليات تبعتي اللي بتصير الإمبليمنتيشن. فالإمبليمنتيشن كود خلينا نقول تمام؟ هي الإمبليمنتيشن كود. يعني عدد الأكواد اللي بتتم الـ الإكسكيوشن لها.
24:12
Speaker A
يعني كم عملية أنا بنفذ؟ تمام؟ فـ الكومبلكسيتي يا شباب شوفوا كيف. يعني خلينا نقول هي زي هيك. هيها.
24:24
Speaker A
الـ بـ الـ O أوف 1. كان عندي أنا في عنصر، كان في عندي عنصرين، كان عندي مليون عنصر، 7000 1000 ستـ يعني عدد لا ما لا نهاية من العناصر.
24:41
Speaker A
الكومبلكسيتي حيضل أوف 1. ليش؟ لأنه أنا قلت لكم عملية الـ الديكلاريشن كونستانت، عملية الـ أكسيزنج أوف أراي كونستانت.
24:52
Speaker A
إيه عملية الـ إنكريمنت، الديكريمنت، الكومبارجن كلها هذه كونستانت. ما بتكلفني غير عملية واحدة قد ما كبرت الـ إليمنتس اللي عندي هي بتكلفني عملية واحدة.
25:04
Speaker A
[أصوات شخير] تمام. فـ بس عشان بس يكون عندكم تصور وبتعرفوا كيف شكل اللوغاريتم. اللوغاريتم.
25:15
Speaker A
اللوغاريتم بيكون جاي من تحت هيك وبيجي هيك. مش بالضبط بس بيكون عندنا زي هيك بيكون بيطلع شوي بيطلع شوي بيطلع شوي بيستقر عند.
25:26
Speaker A
عند زاوية معينة في في في درجة استقرار عنده. إنه أنا أولها كان عندي عدد صغير من العمليات بعدين كبر الـ الـ الكومبلكسيتي تبعي كبر بعد هيك كبر كمان مرة.
25:40
Speaker A
بعد هيك كبر بعد هيك لما أنا قلت له مليون عنصر قال لي اه كبر بس يعني.
25:45
Speaker A
تغيير بسيط ما ما زادتش عليه الكومبلكسيتي والتكلفة كبيرة مع الوقت مع الـ يعني. فهمتوا كيف؟ يعني مع الوقت ما زادت التكلفة كثير فلو أنا قلت إنه هنا التكلفة على سبيل المثال ثلاثة هنا حتكون أربعة.
25:59
Speaker A
على سبيل المثال تمام. طيب. ولما نيجي نحكي عن إن إحنا بنحكي عن إشي خطي هيك.
26:10
Speaker A
يعني كل ما زاد الإنبوث كل ما زادت الكومبلكسيتي وكل ما زاد الإنبوث كل ما زادت الكومبلكسيتي.
26:15
Speaker A
خلينا على إيش هذه اللوغ هذه اللوغ شكل اللوغ. أنا قلنا العمليات اللي بيتم تنفيذها فكل ما زادت العمليات بـ يعني لحديت. ما نصل لدرجة الاستقرار عندنا في اللوغاريتم.
26:29
Speaker A
وهنا اللي هو إن عملية خطية. إن لوغ الإن تقريبا بيكون زي هيك. اللي هو أكبر درجة من الـ إن.
26:41
Speaker A
يعني بيكون زي هيك تقريبا. مش بـ هيك طبعا. أو في درجة زي هيك يعني.
26:51
Speaker A
تمام. الـ n تربيع أخطر منهم بشوي، قلنا لوب جوات لوب فرح يكون زي هيك.
27:00
Speaker A
بس هـ مش هيك طبعًا عمود، لأ. عارفين كيف رسمة الـ n تربيع. هيك. تمام.
27:15
Speaker A
بدكم مثال عشان تعرفوا أي عملية مثلًا، تمام ماشي. امم. أو أنا بديش يا أستاذ تك، ماشي.
27:32
Speaker A
صم. فيرست تو. شوفوا هذه قديش بتكلفني ها، حنبدأ نتناقش هالوقت. بهذه قديش بتكلفني، تمام؟ يلا.
27:55
Speaker A
تمام. خليني نشوف هذه قديش بتكلفني، أنا طبعًا ايش اللي بفحصه؟ ما بفحص الهيدر، ما بفحص قديش فـ ايش اللي فات عليّ هنا، ما أنا بس بفحص الايش؟ الاشي اللي بصير له اكسكيوشن، أي عملية بتم تنفيذها ما بين قفـ قوسين
28:12
Speaker A
هان. بنـ نحسب الكومبلكستي له. هات نحسب. يلا ايش أول حاجة خطرت على بالكم؟ هيها.
28:23
Speaker A
الاراي صار في عملية اكسيزنج، صح؟ لعناصر الاراي هذه، يعني؟ كلفني واحد، صح؟ وهذا. ايش رأيكم؟ الاراي بزيرو، وصل وصل ولا ما وصل للاراي؟ وصل.
28:42
Speaker A
حاجة حدش منكم عاملها حساب انه أصلًا في عملية جمع هنا، ايش رأيكم؟ قديش بتكلفني؟ وآخر شيء ريتيرن تايم, ريتيرن تايم مش عملية بتصير عملية بتصير قديش كله بصير على بعضه؟ أربعة, يعني أصلاً البيج أوف الأربعة ايش بنحكي عنها؟
29:08
Speaker A
بيج أوف 1, يعني أنا بحكي عن شغلة اسمها كونستانت كونستانت تمام؟ تمام, بس احنا فهمنا كيف احنا حسبناها طيب هذا لو عندي, أنا عندي ثلاث عمليات زي ما أنتو شفتوا تو هنا فطالما عدده ثابت, ما بيعتمدش على N, ما
29:28
Speaker A
فيش فيه لوب فاحنا لسه في السليم, احنا بنحكي في الكونستانت, هالوقت يلا نفوت على البيج الـ O أوف N, ونشوف ايش السلوك تبعها هيا نحذف هذا كله ونشوف ايش في أنا عندي, خليني أعملكم اللي هو نفس دالة برضه, أنا بنحب نقيس على دوال
29:50
Speaker A
موضوع الاستاتيك إيه ماشي برنت أري واحنا ايش بدنا نحط هنا؟ أري طيب, بتعرفوا لما احنا بنيجي نحسب الكومبلكسيتي للـ N, ايش بدي أسوي؟ طيب, هي إنتجر إكس بصفر والإكس أقل من مين؟ من أري دوت لينث إكس بلس بلس
30:28
Speaker A
وهي أس أوت أر إكس أري طيب, هاتي نشوف كم مرة بيلزمني عشان أنفذ العملية هذه كلها هيتها ولاحظوا إن أنا بدأت أضيف كونستانت جوات مين؟ بس أنا بدي إياكم تحسبوها بالليبرا.
30:48
Speaker A
كيف تحسبوها بالليبرا؟ تعال نحسبها بالليبرا. إنتجر إكس بصفر. كم مرة بيتم تنفيذها؟ كم مرة بتتنفذ على مدار الكود من القوس الأول للقوس الأخير؟ بيتم تنفيذها مرة واحدة.
31:04
Speaker A
ماشي؟ طيب. الأري دوت لينث، كم مرة بيتم تنفيذها؟ وفعليًا هذه فانكشن تم تنفيذها. اللينث.
31:16
Speaker A
عملها أكسس، في في فانكشن تم تنفيذه هنا. كم مرة بتنفذ؟ مرة واحدة. فهي مرة. تمام؟ وهلقيت خلينا نفصل.
31:28
Speaker A
ونفصل لهنا، هذا فاصل نعتبره. أو خلينا نحكي زي هيك. الإكس أقل من الرقم، طبعًا إحنا بعد ما نعمل أري دوت لينث بيطلع لي رقم، والرقم خلص بيتم الاحتفاظ فيه وبيتم المقارنة فيه دائمًا، مش بيضلوا يعملوا أكسسنج على الأري دوت لينث، مصيبة هذه.
31:47
Speaker A
فالإكس أقل من الرقم، كم مرة بيتم تنفيذه؟ بيتم تنفيذه عدد إن من المرات، صح؟ هي واحد.
31:56
Speaker A
يعني أنا بدي أقول إن ضرب وهي القوس. كم مرة بيتم تنفيذه؟ إن هي واحد.
32:08
Speaker A
وهذا كم مرة بيتم تنفيذه؟ الإكس بلس بلس. كل ما تلف اللوب بيزيد، وهذا كل ما تلف اللوب بيعملي الكومبارجن بتنعمل.
32:17
Speaker A
يعني هي حبة وهي حبة، هي عمليتين. هي واحد زائد واحد. تمام؟ وعملية الأكسسنج هذه كل ما تلف لفة حينعمل الأكسسنج، صح؟ هي كمان واحد.
32:34
Speaker A
وعملية الطباعة كم مرة بتنطبع؟ كل ما اللوب بتلف بيجي صح؟ هي كمان واحد. هذا واحد زائد واحد.
32:45
Speaker A
زائد. الكلام اللي هنا. إيش حيطلع عنا؟ اثنين. زائد مين؟ زائد أربعة إن. أيوة، واحد، اثنين، ثلاثة، أربعة إن.
33:02
Speaker A
نروح للكومبلكسيتي بيج ال- أو أوف. بسحب لك الاثنين. زائد ال- أربعة إن. وزي ما احنا عارفين الكومبلكسيتي هذه البيج ال- أوف أو.
33:14
Speaker A
البيج ال- أو أوف الإن. هذه كونستانت. والأربعة إن. حتصير بيج ال- أو أوف. أربعة إن. وزي ما احنا عارفين. احنا.
33:27
Speaker A
بنقصر ال- المجال تبعنا. فبنقول هذا أوف إن. يعني هذه الدالة. من بيج ال- أوف. بيج ال- أوف مين؟ أوف إن.
33:35
Speaker A
كومبلكسيتي. ال- وورست كيس تبعنا. بيج ال- أوف مين؟ أوف إن. بكل بساطة. هذه هي ال- أوف إن.
33:45
Speaker A
تمام. فعلى سبيل المثال. أنا عندي 100 عنصر. بيج ال- أوف إن. أربعة في 100. 400.
33:52
Speaker A
يعني بيج ال- أوف إن قديش؟ على الحسبة تبعتي 100. لو أنا عندي 1000. 1000.
33:59
Speaker A
وعندي مليون. مليون. كل ما يزيد عدد العناصر. بيزيد. الكومبلكسيتي. مش بقل. ولا هو بيثبت. ولا هو بيستنى. لو عندي عدد العناصر زي هيك.
34:12
Speaker A
حيكون أنا عندي الكومبلكسيتي زي هيك. لأنه أنا كل ما يكون عندي الإنبوت زاد. كل ما الكومبلكسيتي عندي بيزيد.
34:20
Speaker A
تمام. عشان هيك الكونستانت. قد ما زاد الإنبوت عندي. مش حيكلفني غير كونستانت. 1. وهنا احنا زي ما احنا عارفين اسمها لينير هذه الـ N لينير من معادلة خطية لينير جروث.
34:39
Speaker A
فلو حجم البيانات قلت لكم تضاعف الشغل نفسه تقريبًا بيتضاعف. لو قلنا إنه عندي حكينا حكينا تو.
34:49
Speaker A
طيب. في مثال في الكتاب أنا يا خاطر نفحص اللي هو قولوا معي. إحنا عرفنا قديش الكومبلكسيتي بتكلف هنا.
35:02
Speaker A
خلي ما بضرش. ستاتيك. دبل. أراي ماكس. هنا دبل. داتا. تمام. وهي إنتجر الـ N بده يساوي.
35:32
Speaker A
ودبل هنا قديش بتساوي؟ الكرنت الحالي. بالعادة بيكون أول عنصر. عشان بدك تقارن فيه. بدنا نحسب الكومبلكسيتي بشكل دقيق هنا.
35:53
Speaker A
هي إنتجر على سبيل المثال J I اللي بدكم إياه. ونبلش بالـ ليش ما بتبلش بالـ طب ليش بدأت بـ واحد؟ لأنه أنا أصلًا حطيت الداتا بصفر.
36:04
Speaker A
فليش أرجع أحط مرة ثانية الداتا بصفر؟ خلص بنبدأ من واحد وخلص. تمام. وهي الـ J أقل من مين؟ من N.
36:13
Speaker A
وهي الـ J بلس بلس. وعلى طول إف. إذا الداتا تبعت الـ J هذه طلعت أكبر من الـ كرنت اللي عندي فالكرنت بيصير هو الـ إيش؟ فهمتوا كيف؟ يعني الكرنت بيصير هو [تنهّد][شهيق] يعني إذا أنا هذا عندي أكبر من الشيء
36:45
Speaker A
الحالي فخلي الشيء الحالي هو الكبير، اختصار هيك يعني معناتها بالمعنى اللطيف زي ما بيقولوها.
36:54
Speaker A
ماشي، وإحنا يعني بس عشان الاسم يكون بيوحي للـ إنه هذا ماكس يعني مش إحنا جايين نتخوت أو حاجة.
37:08
Speaker A
وبالأخير بيطلع ريتيرن كرنت ماكس. تمام. هلقيت كم عنصر ممكن أضطر عشان أفحصه؟ بدنا نفحص الكومبلكستي يا شباب، كيف نفحص الكومبلكستي؟ قلنا اللي فوق هذا ما لنا دخل فيه.
37:28
Speaker A
نيجي هنا، داتا دوت لينث هي عملية وعملية الأسايمنت مع الديكلاريشن اثنين. هنا عملية الوصول للعنصر في أراي بتكلفني واحد.
37:43
Speaker A
بعدها عملية أسايمنت بتكلفني اثنين. تمام؟ وهذا إنتجر جي قديش بتكلفني؟ كلفتني واحد، هذا بس اللي الـ عملية الـ قولوا معي، عملية الـ ديكلاريشن هذه كم بتكلف؟ خلينا نكتبها في نهاية الـ فور لوب.
38:17
Speaker A
آه طبعًا هذه على بعضها بتكلفني واحد يعني عشان أسهلها خلوها هي. هذه للدكلاريشن. كم كلفتني؟ واحد.
38:28
Speaker A
زائد. طيب. إيش أسوأ احتمال؟ أسوأ احتمال هنحكي عليه. بس حاليًا كم مرة بده ينفحص هذا؟ بده ينفحص عدد n من المرات. والـ j بلس بلس كم مرة بده يزيد؟ بده يزيد n من المرات. يبقى n ضرب واحد بلس واحد. لسه ما وقفناش. بنشوف إيش
38:57
Speaker A
بدنا نزيد كمان. عملية الوصول للداتا هذه كم تكلفتها؟ واحد. وعملية المقارنة هذا بنعتبره رقم. وعملية المقارنة كمان واحد. يبقى قديش؟ اثنين.
39:15
Speaker A
زائد اثنين. تمام؟ هذا كم مرة حيتنفذ؟ لو أنا فتت وعملت هذه العملية تمام؟ وطلع إنه هذا فعلًا أكبر من هذا. إيش اللي حيصير؟ الكرنت ماكس حيساوي الداتا جي. صح؟ حينعمل ريتيرن؟ لأ. حيكمل.
39:37
Speaker A
فأنا حسب البيست كيس البيست كيس في الحالة هذه إنه ما يصير إنه هذه العملية ما تنجحش غير في آخر مرة.
39:48
Speaker A
في آخر لوب تنجح العملية هذه. يعمل كرنت ماكس داتا جي. وريتيرن وخلصنا. هذا البيست كيس. طيب إيش الورست كيس؟ إنه في كل مرة بفحص بلاقي الداتا جي أكبر من الكرنت ماكس.
40:01
Speaker A
والكرنت ماكس بيساوي الداتا جي. يعني هذه العملية بدها تتكرر عدد n من المرات في الورست كيس. صح؟ هذه تكلفتها واحد. وعملية الأسايمنت نفسها تكلفتها واحد. هي كمان اثنين.
40:14
Speaker A
فـ هي كمان اثنين. [تنحنُح] تمام؟ كم التكلفة الكلية بس للسطر هذا؟ واحد زائد اثنين واثنين وأربعة واثنين ستة.
40:28
Speaker A
إن. طيب. الدالة كلها. هي عندي اثنين واثنين. أربعة. واحد خمسة وواحد. تبع الريتين هذا ستة.
40:46
Speaker A
إذا أنا بقول ستة بلس ستة إن. لو أخذنا الستة عامل مشترك بيطلع واحد زائد إن. ستة ضرب واحد زائد إن. بس أنا بدي كومبلكسيتي مش معني في الكلام هذا كله.
41:01
Speaker A
تمام؟ هي ستة بلس ستة. إن. سكر. هي. ستة. إن. يعني. بيج لو أوف مين؟ يعني بيج لو أوف مين؟ أوف إن.
41:22
Speaker A
خلصنا؟ ولكن أنتم شفتوا كيف أجت ستة بلس ستة إن. يا لو جبت لكم في الامتحان احسبوا لي الكومبلكسيتي بالرقم وبالعملية.
41:34
Speaker A
وكيف بيتم الأمر؟ ما حدش يقول لي ما بعرفش هيها. حسبت لكم إياها يعني زي ما تقولوا.
41:42
Speaker A
بالشيء المفصل. ولما تيجي تحسب لي احسب لي على الوورست كيس. طيب. ولو جيت أنا قلت لك احسب لي البيست كيس. إيش بدك تسوي؟ بكل بساطة.
41:54
Speaker A
تكلفتها اثنين تكلفتها اثنين. وهذه تكلفتها واحد. هذه غصباً عنها بدها تلف عدد إن من المرات بس هي تكلفتها واحد بشكل إجباري.
42:04
Speaker A
هذه حتلف إن بشكل إجباري وهذه حتلف إن بشكل إجباري. وهذه كمان حتلف إن بشكل إجباري.
42:10
Speaker A
تمام؟ طيب. مين اللي حيخس عندي؟ هيخس عندي هي واحد وكمان واحد اثنين. يعني اثنين هذه كلها هتضيع.
42:21
Speaker A
صح؟ يعني هذه هتصير إيش؟ أربعة إن. صح؟ يعني هذه الـ وورست كيس تبعتنا. طب إيش الـ بيست كيس؟ وأصلاً الكومبلكسيتي نهايتها تكون إن.
42:40
Speaker A
بس أنا معني تكونوا عارفين تحسبوا العمليات بشكل دقيق زي هيك. تمام. إيه إيش الفرق بين الإن والإن ماينس ون؟ بيهمنيش.
42:59
Speaker A
بس بيهمني إنه هي بيج الـ أوف إن. طيب. لكم عن موضوع الـ وورست كيس.
43:08
Speaker A
وإيش الفرق بينها وبين الـ بيست كيس؟ وعلى سبيل المثال أنا في عندي آه تمام.
43:21
Speaker A
هات نعمل كمان فانكشن. ستاتيك هذه بترجعلي بوليان. تمام؟ كونتينز. وهي طبعاً حتاخذ اللي هو الـ أري.
43:47
Speaker A
إحنا خليناها أري عشان إيش؟ طيب. بدي أبحث أنا عن الـ تارجت هذا جوات الـ أري هذه.
44:00
Speaker A
بدي إياه يطلعلي الـ بدي إياه يقوللي هل هذا التارجت موجود جوات الـ أري ولا مش موجود؟ ترجعلي بوليان زي ما انتم شايفين.
44:10
Speaker A
اخريتها. فولس، عشان ايش؟ اي فور. اي انتجر اكس ايش ام زيرو. اكس اقل من اراي دوت.
44:25
Speaker A
لنس. والاكس بلس بلس هذا بشكل. طبيعي. اممم. بنحط. اي اراي اكس. اذا كان بيساوي.
44:53
Speaker A
تارجت. ايش حيصير. تارجت اللي هو هيو. تمام. هذه عملية. ريتيرن ايش. ترو. واذا ما بيسويهاش بعد ما تخلص العملية هذه كلها حيقوله فولس.
45:13
Speaker A
ايش رايكم. ايش رايكم ايش البيست كيس هنا وايش الورست كيس هنا. نفرض انه انا عندي.
45:22
Speaker A
الاراي زي هيك. بس خلينا نعمل كومنت الاراي عندي 10 20 30 40 50 60 70.
45:33
Speaker A
والتارجت كان انا عندي 10 شو رايكم. حيفوت يعمل انتجر اكس يساوي صفر عملها. والاكس اقل من هذه طبعا في مرة وصول للاراي دوت لنس.
45:47
Speaker A
مرة واحدة وحيدة يعني واحد زائد واحد حيكون اثنين. بعدين حيصير يعمل العملية هذه والعملية هذه بشكل متكرر لحد ما يصل للورلد لل 10 صح.
45:58
Speaker A
طيب التارجت 10. واراي. صفر 10. بال. أول لفة باللوب عملي ريتيرن ترو. تكلفة كونستنت، صح؟ هذا البيست كيس.
46:14
Speaker A
طيب ايش الورست كيس؟ نكون الرقم اللي عندي هان 70. حيضله يلف يلف يلف يلف يلف عبال ما يصل مين؟ أقولك حتى الورست كيس أنا عندي 80، برا الأري هذه كلها هيتها، يلا.
46:29
Speaker A
حيضله يلف يلف يلف يلف يلف وحيضله يحسب هذه من أول وجديد ويحسب التارغيت ونفسه ولا مش نفسه.
46:36
Speaker A
تمام؟ وبالأخير يعملي فولس. يكون لف كل اللفات هذولا ورجع عملي فولس. إشي طبيعي يعني تكون الـ N اكتملت فعلًا.
46:49
Speaker A
طيب. قلنالكم لو في آخر الأري حيكلفني N ولو مش موجودة أصلًا حيكلفني برضه N.
46:56
Speaker A
عشان هيك أنا في عندي الورست كيس والبيست كيس، فبالعادة في في المساق طبعًا لما نحن بنحكي غير هيك بنركز على الورست كيس، يعني بنحكي بالبيج كومبلكسيتي بنركز على الورست كيس.
47:07
Speaker A
البيست كيس طبعًا الحالة تبعتها كونستنت، الورست كيس N في الـ N اللي نحن بنحكي عنه.
47:15
Speaker A
هلقيت أنا أحكي عن الـ الـ الـ الـ N تربيع. تمام؟ فـ أنا ايش بحكي؟ حنلوب جوات لوب.
47:29
Speaker A
[تنهّد] لوب الأول. أقل من تمام؟ مين جواتها؟ كمان لوب. ناري دوت مين دوت لينث.
48:19
Speaker A
تمام، ايش رأيكم؟ بس بدها تطبع، بس ايش؟ عملية طباعة. أكثر من عملية طباعة مش حأسوي.
48:26
Speaker A
وهي الأري. اللي هو أي. ها. هاي أي. اللي هو اه صح مرة أي ومرة.
48:43
Speaker A
جي. تمام. ايش رأيكم بالعملية هذه؟ حتضلها تكمل لحديت آخر نفس، بس اللي بدنا نفهمه.
48:54
Speaker A
إنتجر. كم مرة تم إنشائها؟ تم إنشائها مرة واحدة. تمام. أما. عن اللوب هذه. بعد ما خلصت.
49:08
Speaker A
وهذه زادت حبة. الإنتجر جي بيتم إنشائها كمان مرة وكل اللوب اللي وراها بيتم إنشائها كمان مرة.
49:16
Speaker A
لما هذا يخلص اللوب هذه كاملة وتطلع وترجع للوب الأولى وترجع تتنفذ اللوب الثانية مرة ثانية.
49:24
Speaker A
فإحنا بنحكي عن عملية. عملية، طيب إحنا كيف بدنا نحسب العملية هذه؟ خلينا نبدأ من الطربوش.
49:34
Speaker A
إنتجر أي بصفر، كم بتكلفني هذه؟ واحد. الأري دوت لينث بتكلفني حبة، مرة واحدة ثابتة.
49:50
Speaker A
عملية المقارنة هذه. والعملية هذه كم مرة بتكلفني؟ تكلفني اثنين. اثنين يعني أنا بتكلم عن عدد n من اللفات ضرب واحد زائد واحد زائد كم مرة هذا بيكلفني؟ هذا كم مرة بيكلفني؟ نشوف.
50:21
Speaker A
بنفتح قوس طبعًا. وبنعمل n ضرب جوة القوس هذاك الآن. n ضرب هذا بيكلفني مرة.
50:32
Speaker A
وهذا مرة بشكل ثابت. زائد عملية المقارنة وعملية الجمع حتتم بشكل متكرر صح؟ يعني هي اثنين.
50:50
Speaker A
هذول الاثنين بس نجيبهم هنا ونطلعهم هنا. عملية المقارنة الأولى هي مرة وهي كمان مرة، تمام؟ هي مرتين.
51:06
Speaker A
هي مرة. هي كمان مرة. هي مرتين هذول خلصناهم حينضربوا في n. وعملية الطباعة نفسها مرة.
51:18
Speaker A
عملية الوصول للانديسيز الـ i من الـ array مرة. والوصول للـ j مرة. [سعال] بدكم تحسبوا، أنا عارف متحمسين لـ تحسبوها.
51:32
Speaker A
أنا عندي هي اثنين بلس واحد اثنين ثلاثة أربعة، يعني أربعة n. بلس ما هو الـ n أنا وزعتها هنا.
51:49
Speaker A
وزعتها على الـ هنا. وزعتها على الـ N الثانية. وهي واحد، اثنين، ثلاثة، أربعة، خمسة.
52:01
Speaker A
خمسة N تربيع. يعني زي هيك، خمسة N تربيع. إيش بتطلع لي الكومبلكستي النهائية تبعته؟ N تربيع.
52:17
Speaker A
قوس. N تربيع. تمام؟ طيب. يعني الأوتر لوب كلفني N والـ والإنر لوب كلفني N، فأنا بضربهم في بعض.
52:32
Speaker A
باختصار. بدكم تنتبهوا لحاجة إنه اللوب مش معناته تلقائي إنه بيج O أوف N. يعني لازم أشوف كم لوب في جوات الـ الـ لوبس، لأنه لو انضاف كمان فور لوب، إحنا خلص N تكعيب على طول.
52:48
Speaker A
تمام؟ ماشي. طيب. لو قلت لكم يا شباب، قديش بيج الـ O أوف N، يعني بيج الـ الكومبلكستي لـ لخمسة N بلاس ثلاثة، بيج الـ O.
53:27
Speaker A
إيش بده يكون؟ التلقائي اللي أنتم بدكم تحكوه، N. يعني لو كان يعني بعيد عن الدالة هذه هنا.
53:38
Speaker A
نتكلم هنا. لو واحد أجا سألكم قديش هذه، قديش بتكلفني؟ تمام؟ وعلى سبيل المثال لو يعني احنا مين بنعتمد؟ بنعتمد أكبر درجة.
53:57
Speaker A
فلو كان أنا في عندي الثلاثة ان تربيع زائد على سبيل المثال سبعة ان زائد 20 فهذا قديه بيطلعلي البيج الاو ايش؟ طلعلي اياه ان تربيع. شفتوا كيف ال دنيا؟ فبروح بدور على أعلى درجة عشان أطلع البيج الاو عشان
54:21
Speaker A
أعطي الحسبة النهائية. ولو كان في كوادراتك فهي كوادراتك تمام؟ فالقاعدة اللي بتستخدموها في معظم المسائل انه بتشيل الكونستانت على طول. يعني مثلا على سبيل المثال هنا في كونستانت خلص هذه بشيلها.
54:38
Speaker A
تمام؟ وبأخذ أسرع اللي هو تيرم لل جروث. فعلى سبيل المثال لو أنا كان في عندي هيك كونستانت بشيل الكونستانت على طول تمام؟ وعندي خمسة ان بقسمها على خمسة بضللي ان.
54:58
Speaker A
بس احنا عارفين انه أكبر درجة عندي هي اللي أنا برسى عليها. لانه لما ان تكبر كثير ل درجات كبيرة بصير تأثيرها قليل مقارنة بالنمو نفسه.
55:15
Speaker A
طيب. ماشي. فانتم شفتوا الجروث فانكشن من الملف اللي عرضناه في البداية. هذه لها حسبة اللي هو زي ما قلتلكم.
55:36
Speaker A
لما أنا بدي النتيجة أشوف أكبر أكبر ريتيرن هنا هنا مين أكبر؟ ال إن تربيع ولا ال إن اللوج ال إن؟ طبعًا ال إن تربيع وهنا ال إن من من درجة أربعة وهنا ال إن تمام؟ وزي ما إحنا شايفين هنا
55:56
Speaker A
نفس الكلام اللي هنا برضه من ال سمبليفاينج أنا حكينا ليش إحنا بنستخدم ال وورست كيس؟ صحيح؟ طيب وهنا الترتيب تبع ال الجروث [تنحنُح] أنا هيو ملون لك إياهم بالألوان تبعتي كمان في عندي لوج ال إن وفي عندي ال إن وإن لوج
56:20
Speaker A
ال إن بالترتيب مرتب لي إياهم، أقل درجة كونستانت لوج ال إن بعدين إن بعدين إن لوج ال إن إن تربيع إن سكوير إثنين أس إن وهذه أسوأ حاجة ممكن الواحد يصلها، كيف ممكن يصلها؟ إيش رأيكم؟ يعني على سبيل المثال
56:37
Speaker A
ممكن أنا أعمل أصل للدرجة هذه وهي درجة سيئة جدًا عن طريق بس الريكرجن، أعمل ريكرجن تضل تستدعي تستدعي تستدعي تستدعي تعمل استدعاءات كبيرة جدًا جدًا جدًا نظرًا لأنه أنا مثلًا عندي مليون عنصر فكل استدعاء بيستدعي في الميموري ويمكن
56:51
Speaker A
أصلًا ما تتنفذش العملية يمكن أصلًا السيستم يوقف بدون ما تتنفذ العملية هذه فمصيبة فعلًا هذه مصيبة طيب بدي أعمل لكم مثال بسيط على بس اللوج ال إن تمام؟ عشان ما يكونش شيء مبهم على سبيل المثال فلو كان أنا عندي اللي هو
57:29
Speaker A
تمام تمام على سبيل المثال أنا في كيس أنا بدي أصلحها تمام عشان تكون في الصورة سواء في فور لوب أو سواء في وايل لوب وأنا الإن أو عدد العناصر عندي في كل مرة في كل لفة بقل إلى النصف
57:48
Speaker A
على سبيل المثال أنا عندي 10 عناصر تمام فتت اللوب أول مرة العناصر على طول 10 تقسيم 2 5 صار عندي 5 عناصر لقيت كم لفة حلفها لقيت 5 حاجي ألف لقيت أنا عندي 5 الـ5 حتتقسم على 2 2 2.5
58:05
Speaker A
طيب الـ2.5 مش عدد إنتجر يا بخليها للأقل يا للأكبر تمام خليها 3 على فرضًا 3 بعدها قسمت على 2 وهذول نرجع نقسم على 2 فهمتوا كيف لحد ما أصل لمين للـ إيش بيحكوا عنها البيز البيز شو اسمه البيز كيس
58:25
Speaker A
فبضلني أقسم على 2 هذه لما أضلني أنا أقسم على 2 أو العدد العناصر يقل يقل للنصف في كل مرة هنا أنا بقول بقدر أقول إنه أنا في الـ في الـ لوج الآن تمام وفي إن لوج الآن اللي هو لوب و شو اسمه
58:48
Speaker A
بس إحنا يعني الشيء بده يكون تمام ماشي مشكلة في أمثلة كثير فممكن إحنا نعمل لقاء تمام نكمل على اللقاء هذا لأنه بصراحة أنا بحس إنه الموضوع لسه ما أخذش حقه فبننسق إن شاء الله اللقاء نخلص باقي المواضيع مواضيع مش كبيرة
59:19
Speaker A
بس لازم أنتم تشوفوا اللوج الآن والإن لوج الآن والإن تربيع والـ2 أس إن يعني بس بأمثلة على الأقل تمام ويعطيكم العافية
Topics:تعقيد الوقتBig Oهياكل البياناتالخوارزمياتجافاتحليل الخوارزمياتالبرمجةعلوم الحاسوبTime Complexity

Get More with the SozAI App

Transcribe recordings, audio files, and YouTube videos — with AI summaries and speaker detection. 30 minutes free.

Or transcribe another YouTube video here →