Professional Documents
Culture Documents
Chapter #2.1
Chapter #2.1
Algorithm Analysis
https://web.facebook.com/groups/IntelligenceGroup.CS/
2
-جملة ال ifرح تتنفذ بعدد مرات ال Trueيعني أقل من شرط اللوب ب )n-1( 1
-يعني ال Worst Caseاللي هي إنه يكون آخر عنصر بال Arrayهو أصغر عنصر ،ف
الجملة التابعة ل ifرح تتنفذ ) (n-1من المرات.
بالتالي .Running Time in Worst Case = 3n -1
إلنه أول عنصر هو اولريدي أول عنصر، ما رح يتنفذ وًل مرةif تبع الBody ولكن ال-
. ف ما رح يكون في قيمة أصغر منهArray في ال
https://web.facebook.com/groups/IntelligenceGroup.CS/
4
Asymptotic Notations
https://web.facebook.com/groups/IntelligenceGroup.CS/
5
Examples:
notation:
- n2/2 – n/2 = (n2).
- (6n3 + 1)logn /(n + 1) = (n2logn).
- n vs. n2 n ≠ (n2), But n = O(n2).
notation:
- n3 vs. n2 n3 = (n2).
- n vs. logn n = (logn).
- n vs. n2 n ≠ (n2), But n = O(n2).
O notation:
- 2n2 vs. n3 2n2 = O(n3)
- n2 vs. n2 n2 = O(n2)
- n3 vs. nlogn n3 ≠ nlogn, But n3 = (nlogn).
https://web.facebook.com/groups/IntelligenceGroup.CS/
6
-الرسومات فوق بتبين فرق السرعة بين كل فنكشن والثاني بحيث المحور السيني
بمثل حجم اًلنبوت والمحور الصادي بمثل سرعة ال Algorithmالتقريبية.
ً -لحظ كيف ال n3اللي هو أسرع من ال 2nكان أبطأ منه لحد ما وصل جحم
اًلنبوت للقيمة 10وبعد هيك بلّش الفرق اللي بينهم يوضح بشكل كبير.
https://web.facebook.com/groups/IntelligenceGroup.CS/
7
Recursive Algorithms
-ف هو ببلش بحث من المنتصف وببلش عملية مقارنة بين العنصر اللي في الوسط وبين
العنصر اللي ببحث عنه (اللي هو )xف إذا كان متساويين ف برجعه وص ّل هللا وبارك ،وهاي
طب ًعا ال Best Caseفي ال ... Binary Search
إذا ما طلعوا متساويين ،ببلش يعمل مقارنة فإذا كان العنصر اللي ببحث عنه أكبر من العنصر
اللي في الوسط فأنا مش بحاجة إلنه أبحث عن العناصر اللي قبل العنصر اللي في الوسط إلنه
كلهم أصغر من الرقم اللي ببحث عنه (إلنها ... )Ordered
فبصير يبحث بالجزء األيمن من ال Arrayوبعيد نفس اآللية كمان مرة ،بيجي بقارن العنصر
اللي بالوسط بال Arrayالجديدة وهكذا تستمر العملية Recursivelyلحتى يًلقيه ف يرجع
Trueأو ما يًلقيه ف يرجع .False
https://web.facebook.com/groups/IntelligenceGroup.CS/
8
عشان كل مرةlo,hi فهو رح يحتاج لمتغيرين اللي همRecursively وطبعًا كونه اشتغل-
.x عنده ويقل عدد العناصر اللي رح يبحث فيهم عن العنصرArray تنقص ال
1 2 3 4 5 6 7 8
2 3 5 7 9 10 11 12
mid
lo hi
Recurrences
Recursive Algorithms للRunning Time هو طريقة تمثيل الRecurrences ال -
..
E.g.: T(n) = T(n-1) + n .4 ورح نفصل كل صغيرة وكبيرة فيه بشابتر
Sorting:
Comparison methods:
Iterative methods:
- Insertion sort
- Bubble sort
- Selection sort
-
. عاديةLoop اللي الجمل اللي فيهاIteration المقصود بال
. تبعته بالجزء الثاني من الشابترAlgorithm ورح نشوف الInsertion Sort زي-
Divide and conquer:
- Merge sort
- Quick sort
Non-comparison methods:
- Counting sort
- Radix sort
- Bucket sort
الهمFile ومش مطلوبين معنا لكن رح ينزل على اًليليرنينغ، وهذول ما رح نتطرق الهم-
.للي بحب يشوفهم
https://web.facebook.com/groups/IntelligenceGroup.CS/
10
Types of Analysis
،Time Complicity معينة فحكينا إنه بنحسب الAlgorithm لAnalysis لما نعمل
: أنواع3 بكون علىTime وحساب ال
لعناصر الSorting كمثال إنه أحكيلك بدي تعمل، اللي هي أسوأ األحوال:Worst Case -
. مرتبة بالعكسArray فأسوأ األحوال إنه تكون هاي الArray
لSorting زي احكيلك اعمل، أفضل األحوال وبتكون أسرع ما يمكن:Best Case -
. هون بكون أسرع ما يمكنTime فالSorted بالفعلArray ولكن هاي الArray
Sorting اللي بدي أعمللهاArray إنه تكون الGeneral Case أو ال:Average Case -
.Non Sorted وًل هيSorted يعني ًل هي،فيها قيم عشوائية