Professional Documents
Culture Documents
Chapter #1
Chapter #1
Introduction to Algorithms
،Algorithm اهسردنب شيلو، بتكأ نكمم فيكوAlgorithms ال نعرتباش لوأب يكحن حر
؟ ًلا صأAlgorithm ىنعم وشو
ال ةباتك دعب كنم عقوتمالOutput كيجي حر يلال، ال وشوInput ال وش فراع كنإ ىنعمب
.Algorithm
Why Study Algorithms?
▪Necessary in any computer programming problem:
– Improve algorithm efficiency: run faster, process more data, do
something that would otherwise be impossible.
– Solve problems of significantly large size.
– Technology only improves things by a constant factor.
▪Compare algorithms.
▪Algorithms as a field of study.
▪Learn techniques of algorithm design and analysis
؟ لماك سروك اهالوAlgorithms ه قوف يلال م ًلكال رصتخمKال سردنب شيل انحا هنإ و -
https://web.facebook.com/groups/IntelligenceGroup.CS/
2
حب ةيمزراوخ اذك سردن حر ينعي ،ةدوجومال تايمزراوخال ينب نراقن ناشع وضرب ▪ لت
ال يز ةدوجوم ت ًلكشم Searchingالو ،Sortingلضفألاو نسحألا نيم نراقن شلبنو
ال KديدحتىKKلع Kءا انباعا بKKط ...خالعرسألاو ComplexityلKل.Algorithm
▪ اهللمعنو ةيمزراوخ ممصن فيك لمتعن ناشع وضرب analysisممصن اKم دعبو ،ليلحت ينعي
اهريغ عم ا هنراقن عجرن ةي مزراوخ.
-
Incrementalال ةلكشم تناك لكاشمال دحأ -يلال Searchingلخاد نيعم رصنع نKع ثحبأ نكمم فيكو
يرثك اهريغ Array Algorithmsاذك انع ف ً،لا ثم Algorithmال يKز ةلكشمال يKاKه Kاولحي نكمKم
الع يشمن وKه Arrayيفو ،بول ةلمج لKلًKKخ نKم رصنع رصنع
ال Kلث م Binary Searchلاو HashingهريغKو ....
ا ع ا بط
https://web.facebook.com/groups/IntelligenceGroup.CS/
3
ال ةلكشم Kوضرب -ءازجأل Sortingال رصانع KبKKترأ حر فKKيكو ،Arrayال دحأو Algorithms
سبثKKيحبArray
طبكKيه Kدعبو Arrayال وKه KةلكشماليKاKه KاولحبيKلال Divide-and-conquerال مق
ال Kلعت
يKنعي رغصأ
تKKانراقم KلKمعيشKلبو)يKشمبعوضومالنKجريكير (
انع يللا .Sorted
ةلثمأل نKKم.Merge Sort + Quick Sort K
ال وKه Kاهيلع Kا
-لا لكاش م Graphلا انع يف ،كKلذك Greedy Algorithmsنيربتاش رخآب م ه ملعتن حرو
هللا ءاش نإ.
-
Algorithm
Design Analysis
Correctness Efficiency
Time Space
https://web.facebook.com/groups/IntelligenceGroup.CS/
4
ي
:Spaceال يKاKه مك وKه يلال Algorithmف ةحاسم ذخوت حر
-ال Complexity
.
يKKروميمال
ترا
ال وKه نوكي حر هيلع Time Complexityال ةلكشم هنوك Spaceص
زيكرت رثكألاو
https://web.facebook.com/groups/IntelligenceGroup.CS/ ة م.
:خلمالKص
م اهالKخ نKKًلK لAnalysis لمعنب كيه دعبوAlgorithm للDesign ▪ لمعنب يشا لوأ نذإ
:نيلاؤس يالح لأسأ هنإ
.Time Complicity Algorithm 1- لا يا ه تقو ذخوت حر مك
.Space Complicity Memory KمKK نK الSpace 2- جاتحتحر مك
.Space ن م رثكأTime ر انيكحوKىلع زكرن ح
- Slide 8:
Fact: running time grows with the size of the input
https://web.facebook.com/groups/IntelligenceGroup.CS/
6
ال ةعرس Algorithmالب ةدوجومال تايلمعال دعأ هنإ لKلًKKخ نKم باوجال ؟ اهبسحنب وشب
Algorithmنيع م نشكنف يع م لعطبو ،هريغو سبول يف اذإو.
ال رKوKهKظ ةعرس يف يسيئر لKمKاKع شKم رتويبمكال ةعرس هنإ رصتخم لكشبو يكحب ًديلسالب
،Outputال KةKعرسامنإ AlgorithmهرKوهظ يKفيKسيئراللKKماعال يKKه.K
Writing Algorithms:
• Any algorithm should be written as:
Name: give an appropriate name
Input: value or set of values
Output: value or set of values
Algorithm:
• Step (usually steps) that can take you from the input to
the output
• …
• ..
:KحلةنيعمKو ةلكشماللKهKKالتالك يK يFormulaأ كليكحبKلغKKانالبKيجمربمالوأ سK اومدختسبن
. يدنع يللا ةلكش ملا مسا ددحب ةيادبالب: Name -1
OutputلالKر يKنيجيحKي، (ةقدبددحأ مزال، KاشعKK نKمK علطياKعمKK يInput ددحأK ال: Input -2
.) يعبتDomain لا يف دوجو م شم و هInput
دنع فلتخم
. ين م قعوت ملاOutput لا وش ددحأ: Output -3
Examples:
Example 1: Determining if a number is prime or not.
▪Name: Prime
▪Input: n (an integer number)
▪Output: Prime or not prime
▪Algorithm:
https://web.facebook.com/groups/IntelligenceGroup.CS/
Example 2:
▪Name: ListSort
▪Input: L (list of names of people)
▪Output: L (same list sorted alphabetically).
▪Algorithm:
- Steps …
- We will see several algorithms in later chapters
Example 3:
▪Name: SumOfNumbers
▪Input: n (positive integer)
▪Output: sum (sum of all positive integers from 1 to n)
▪Algorithm:
نيطعي حر رزويال ،الؤسال اذهب Inputنيعم ) (nىإل 1نKم ماقرألا عKوKمجKم هيطعأ انأو
).(n
▪ لا Inputهنإ اوظحال Positive Integer Kطقف.
▪ لاو Outputع ومجملا نوكي حKر.
▪ لل يجين :Algorithm
:2 حKKر لKمق
ًلا ثمWhile مدختسي ف ةيناث ةقيرطبAlgorithm ال لحي ادح نكمم -
Example 3:
▪Name: SumOfNumbers
▪Input: n (positive integer)
▪Output: sum (sum of all positive integers from 1 to n)
▪Algorithm:
count = 1
sum = 0
while (count <= n)
{
sum = sum + count
count = count + 1
}
output sum
-
اK ن، جآ املهنإ انيكحKKتكأ يKK بAlgorithm يطKKيك انفرع انحا بKKتنكبفK بK ال-
Algorithm آل
. اهالAnalysis وDesign أ مزال فKمعKKل
. اهالCorrectness + EfficiencyوكبK نKمKKخ نKًKلKK دكأتأ لKمKK نK الAnalysis وKال -
.Analysis ذخونليانخفKوشنو الثمKKيك فKKهلحناندبف، معنوKKل -
https://web.facebook.com/groups/IntelligenceGroup.CS/
11
▪Algorithm:
1. Read weight-in-pounds.
2. Calculate weight-in-Kg = weight-in-pounds * 0.454.
3. Print weight-in-Kg.
:Efficiency -
؟Algorithm ال ياهلTime Complexity ال مك
https://web.facebook.com/groups/IntelligenceGroup.CS/
12
.Efficientاد ةحيحصKK وضربو اما ئAlgorithm بف ًقلنب تKللهو هنإ يKK اKهKاKKK يKال
ال
الKي
:2 حKKر لKمق
▪Algorithm:
1. Read weight-in-pounds
2. Calculate weight-in-Kg = weight-in-pounds / 0.454
3. Print weight-in-Kg
:3 حKKر لKمق
▪Algorithm:
1. Read weight-in-pounds
2. weight-in-Kg = 0
https://web.facebook.com/groups/IntelligenceGroup.CS/
3. Loop until weight-in-pounds =0
13
4. if weight-in-pounds > 1
5. weight-in-Kg = weight-in-Kg + 0.454
6. weight-in-pounds = weight-in-pounds -1
7. else
8. weight-in-Kg=weight-in-Kg+weight-in-pounds* 0.454
9. weight-in-pounds =0
10. Print weight-in-Kg
ِ لىعKةدح، فKهK وKعKمK يشمت حر بول لKمK ال نPound صقنيو دحاوKمKلحال اذهب ▪ هدنع يلال زدنوابال ن، لك لوحأ نكمم انأ اكح
دحلKمK مقرلل لصوي ا1، لكوKمKرK دنواب لوحي ةPounds 1 5 ر وهفKم بلشي حK ال ن5 للPounds
م دحلKزدنوابال اوصلخي ا، هاطعأ رزويال ول ينعي
. KمK اوصلخياPounds قنيو دحاوK صKمKK نK الPound خKًKلKKوللKKب، كوKK لKمKرKوحيةKل
دحل
https://web.facebook.com/groups/IntelligenceGroup.CS/
14
▪ ال الثم انقبط لوف ) GCD(8,12ال يKاKه ىلع Algorithmال هنإ ي ًقلن حر r = 8بولالو
لل 1ل Kا ن م يش مت حKر .12
يذحKر .Largest = 1
فورتنKوكيو طرشالتنف
دنع i=1 Kال Kةميق يرصتحKر ةايدبال -
يذ حر ،Largestمساق وKه 2مقرال هنإ ىنعمب -دنع i=2ال وKه ريصيو كلذك طرشالتنف
،ربكأل سKيلهنكلو 12الKو 8ال KنيبكKرتشم.K
ةKرKم KنKKامك بKKولاليKشمتحKر ف ا
i=3لا 8ىلع نكل 21لا ىلع مسقب حص 8،ىلع مسقب ا م هنإل، Kطرشلا ذفنتي حKر ا م.
-دنع
:Algorithmيناث فوشن
Euclid’s كلوK نKهKاKKKيمزراوخال يK اهمسا اادج ةميدقةGCD وشنانليخKKيمزراوخ فKح ةKKللKل
.GCD Algorithm
ال Kن Kع KيKكحبعجربتKKاد ًيلسالب 1.2نKKم Kءزج رخآبAlgorithm Efficiency -
لمعن اندب ليككحب Sortال نKم نيعم ددعل Itemsمدختسن حرو Algorithmsفوشنو 2 -
عوضو ملا لص’ فنو م هنيب لضفلأا نيم ...
- Note: Insertion sort usually has a smaller constant factor than merge
sort: i.e. c1 < c2
ال عم يلال تباثال ةداع ليككحب Insertion Sortال عم دوجومال تباثال نKم لقأ نوكب -
.Merge
-لKمعناندب Sortingال KنKKم )610( Kل Itemsرابتعا ىKKلع، Kرصنع KنKويلم KبKKترناندبيKنعي
ال
يKال:
ت
https://web.facebook.com/groups/IntelligenceGroup.CS/
19
▪ ال Kهنإ يً KقلنحKر Merge SortالKو رصنع KنKويلم KبKتيترلةدحاو ةيناثقKر تغسا Insertion
بةيناث 2000قKر تغسا Merge SortةKالحاليKKاهبعرسأ نKKاك. ال
يKال
ال Kت
Merge sort is faster than insertion sort for large input sizes.
Some algorithms might be always (for all n values) faster than
the other algorithm.
▪Examples:
algorithm A: takes 4n2
algorithm
AlgorithmB:
A takes 3n3 +faster
is always 2n (takes less steps) than algorithm B.
https://web.facebook.com/groups/IntelligenceGroup.CS/
21
▪ ال ضعب هنإ ليككحب Algorithmsالف قوف روكذمال الثمال يز اهريغ نKم عرسأ اما ئاد نوكتب
) Algorithm (AنKم عرسأ اما ئاد Bتمدختسا ءاوس الثمال اذهب Inputيأ ف ،ريغص وأ بيرك
InputةKيمزراوخ ىKKلع Kهتلخدأ اذإ نKKاك اKمKهKم A Kو BلعطتحKر اما ئKKاد ف Aعرسأ ...
ةيمزراوخ ف ،روكذمال الثمال يز BنKم عرسأ اما ئاد شKم Aال هنإ مغرال ىلع Timeلقأ اهعبت -
نKKم.A K
-تKKKذخأ ول ًلا ثKمف n=1كKدنع KنKKاك يKنعي inputةKيمزراوخ يً KقلتحKر ةلداعمالبضKوعتو ،طقفدحاو A
نKم عرسأ Bتضوع ولو n=2,n=3……..n=7هنإب مهلك مهي ًقلت حر ف AنKم عرسأ ،Bسب
ال KاKم Kدرجمب Inputهنإ ظح ًلتو رهظيةKعرسالقKرفشبليحKر ،رثكأف 8يرصي BنKKم Kعرسأ .A
Faster at some pointes does not necessary means more efficient.
-يز ،اهريغ نKم ةءافك رثكأ اهنإ ينعي ال اKذKه طاقنال ضعب دنع ةعيرس نوكت ةيمزراوخال هنإ ليككحب
امل ،قوف يلال الثمال nةيمزراوخال تناك 8نKم لقأ تناك Aاهنع يكحب اKم كلذ عمو نكلو ،عرسأ
نKKم Kةءافك رثكKأ Bيقطن م اذ هو ...
ةياهنالىKKإل 35د ًيلسن Kم KتKKاديًلسالةقيب ويروفزإ KسKيذ.
#Intelligence_Group
By: Albara Fwaz
https://web.facebook.com/groups/IntelligenceGroup.CS/