SlideShare a Scribd company logo
1 of 37
Algorithm
Analysis &
Design
Mohamed Siddig Hassan
Jens Martensson 2
Preface
Jens Martensson
‫المقرر‬ ‫لهذا‬ ‫المعتمدة‬ ‫الساعات‬
:
‫المقرر‬ ‫لهذا‬ ‫األساسية‬ ‫األهداف‬
:
•
‫للخوارزميات‬ ‫األساسية‬ ‫المفاهيم‬ ‫على‬ ‫التعرف‬
• Students will understand the basic concepts of algorithms.
•
‫وتحليلها‬ ‫الخوازميات‬ ‫تصميم‬ ‫على‬ ‫المقدرة‬ ‫اكتساب‬
• Students will gain the ability to design and analysis of algorithms.
•
‫الخوارزميات‬ ‫باستخدام‬ ‫البرمجة‬ ‫مهارات‬ ‫تحسين‬
• Students will enhance the skills of algorithm programming.
3
1 2
3 4
5 6
•
3
‫معتمدة‬ ‫ساعات‬
Jens Martensson
‫الموضوعات‬
Content
• Basic concept: Algorithm characteristics, algorithm instances,
algorithm representation, pseudo code, and etc.
• Algorithm problem solving.
• Overview of important problems: Sorting, Searching, string
matching, geometric problems, numerical problems, and etc.
• Examples for several classic algorithms.
• Mathematical foundation: growth of functions, recurrences.
• Asymptotic notation for characterizing algorithm complexity.
• Basic techniques for complexity analysis of various algorithm
patterns.
• Algorithm design techniques: Divide and conquer, Greedy
algorithms, dynamic programming, graph algorithms.
• Introduction to NP-completeness.
4
1 2
3 4
5 6
Jens Martensson
‫المنهجية‬ ‫والكتب‬ ‫المراجع‬
References
• Anany Levitin, “Introduction to Design & Analysis Of
Algorithms,” Addision Wesley, 2003.
• Gilles Brassard and Paul Bratkey, “Fundamental of Algorithms”
Prentice Hall, Pearson Education Inc. 1996
5
‫هي‬ ‫المقرر‬ ‫لهذا‬ ‫المرجعية‬ ‫الكتب‬
:
What are Algorithms?
‫الخوارزمية؟‬ ‫ماهي‬
Jens Martensson
‫مقدمة‬
•
‫قواعد‬
‫ديكارت‬
•
‫ال‬
‫يمكن‬
‫قبول‬
‫اي‬
‫شيء‬
‫حققته‬
‫مسلمة‬
‫إال‬
‫إذا‬
‫تم‬
‫اثباته‬
‫بالتجر‬
‫بة‬
‫والمشاهدة‬
•
‫كل‬
‫مشكلة‬
‫يتم‬
‫تبسيطها‬
‫بتقسيمها‬
‫إلى‬
‫أجزاء‬
‫أذا‬
‫أمكن‬
‫ذلك‬
•
‫فكر‬
‫بطريقة‬
‫منظمة‬
‫ومنطقية‬
‫وذلك‬
‫بالبدء‬
‫في‬
‫االجزاء‬
‫البسي‬
‫طة‬
‫وسهلة‬
‫الفهم‬
‫ثم‬
‫تدرج‬
‫إلى‬
‫األجزاء‬
‫الصعبة‬
‫حتى‬
‫تنحل‬
‫المشكلة‬
•
‫مراجعة‬
‫جميع‬
‫االجزاء‬
‫إلكمال‬
‫الحل‬
7
1 2
3 4
5 6
•
‫القدرة‬
‫على‬
‫حل‬
‫المشكالت‬
‫بواسطة‬
‫البرمجة‬
‫هي‬
‫مهارة‬
‫وطريقة‬
‫مرتب‬
‫ة‬
‫ال‬
‫تعتمد‬
‫مبداء‬
‫العشوائية‬
‫إضافة‬
‫إلى‬
‫أن‬
‫مهارة‬
‫حل‬
‫المشكالت‬
‫يمكن‬
‫اكتسابها‬
‫وتعلمها‬
‫بتعلم‬
‫بعض‬
‫القواعد‬
‫والقوانين‬
Jens Martensson
‫مقدمة‬
8
1 2
3 4
5 6
•
‫الخوارزمية‬
Algorithm
‫استخدمت‬
‫في‬
‫القرن‬
‫الماضي‬
‫بشك‬
‫ل‬
‫واسع‬
‫في‬
‫اوروبا‬
‫وأمريكا‬
‫بمعنى‬
‫الوصف‬
‫الدقيق‬
‫لتنف‬
‫يذ‬
‫المهام‬
‫واالجراءات‬
‫أو‬
‫حل‬
‫المسائل‬
.
•
‫محمد‬
‫بن‬
‫ابوموسى‬
‫الخوارزمي‬
‫عالم‬
‫وفيلسوف‬
‫عربي‬
‫عاش‬
‫في‬
‫بغ‬
‫داد‬
‫من‬
‫سنة‬
780
-
847
‫م‬
‫في‬
‫عصر‬
‫الخليفة‬
،‫المأمون‬
‫برع‬
‫في‬
‫علم‬
‫الفل‬
‫ك‬
‫والرياضيات‬
‫وترك‬
‫بصمة‬
‫في‬
‫التراث‬
‫الحضاري‬
‫العالمي‬
‫فهو‬
‫واض‬
‫غ‬
‫علم‬
‫الجبرا‬
‫ومؤلف‬
‫كتاب‬
‫الجبر‬
‫والمقابلة‬
.
•
‫كلمة‬
‫خوارزمية‬
‫كانت‬
‫تعني‬
‫جدول‬
‫الضرب‬
‫والقسمة‬
‫في‬
‫الحساب‬
‫العشري‬
‫في‬
‫البدء‬
•
‫ظلت‬
‫مدلول‬
‫الكلمة‬
‫ا‬‫ال‬‫متداو‬
‫حتى‬
‫تطورت‬
‫الحواسيب‬
‫وعلم‬
‫البرمج‬
‫ة‬
Jens Martensson
‫الخوارزمية‬
Algorithms
• Informally, an Algorithm is any well-defined
computational procedure that takes some values, or a
set of values as, Input and procedures some values, or
a set of values as, output.
•
‫الخوارزمية‬
:
‫عبارة‬
‫عن‬
‫اجراء‬
‫رياضي‬
‫مسبق‬
‫يأخذ‬
‫قيمة‬
‫أو‬
‫مجموعة‬
‫من‬
‫القيم‬
‫كمدخالت‬
‫ويقوم‬
‫بإخراج‬
‫قيمة‬
‫أو‬
‫مجموعة‬
‫من‬
‫القيم‬
‫وجعلها‬
‫كمخرجات‬
«
‫نتائج‬
»
.
9
1 2
3 4
5 6
Output
Finite, Ordered list
of Steps
Input
Jens Martensson
‫الخوارزمية‬
Algorithms
• An Algorithm is thus sequences of
computational steps that transform the
input into output.
•
‫الخوارزمية‬
:
‫عبارة‬
‫عن‬
‫مجموعة‬
‫متتالية‬
‫من‬
‫الخطوات‬
‫الرياضية‬
‫لتحويل‬
‫المدخالت‬
‫إلى‬
‫مخرجا‬
‫ت‬
10
1 2
3 4
5 6
Jens Martensson
‫الخوارزمية‬
Algorithms
• Algorithm is a tool for solving a well-
defined computational problem
•
‫الخوارزمية‬
:
‫عبارة‬
‫عن‬
‫وسيلة‬
‫لحل‬
‫المشكالت‬
‫الرياضية‬
‫المحددة‬
11
1 2
3 4
5 6
Jens Martensson
‫الخوارزمية‬
Algorithms
• The problem specifies (Input/output) relationships
•
‫تحديد‬
‫المشكلة‬
‫يعتمد‬
‫على‬
‫عالقة‬
‫المدخالت‬
‫والمخرجات‬
• The Algorithms describes a specific computational procedure for
achieving that input/output relationship
•
‫الخوارزمية‬
‫تصف‬
‫أجراءات‬
‫رياضية‬
‫خاصة‬
‫تتحق‬
‫عند‬
‫ربط‬
‫المدخالت‬
‫بالمخرجات‬
12
1 2
3 4
5 6
Jens Martensson
‫الخوارزمية‬
Algorithms
• The Algorithms describes a specific computational
procedure for achieving that input/output relationship
•
‫الخوارزمية‬
‫تصف‬
‫اجراءات‬
‫رياضية‬
‫خاصة‬
‫تتحق‬
‫عند‬
‫رب‬
‫ط‬
‫المدخالت‬
‫بالمخرجات‬
13
1 2
3 4
5 6
Algorithms
Input List (input Data)
output List (output Data)
Jens Martensson
‫الخوارزمية‬
Algorithms
•
‫الخوارزمية‬
‫مجموعة‬
‫محددة‬
‫من‬
‫االجراءات‬
(
‫خطوات‬
‫الحل‬
)
‫تؤدي‬
‫إلى‬
‫انجاز‬
‫وظيفة‬
(
‫مهمة‬
)
‫محددة‬
‫بحيث‬
‫تتوافر‬
‫فيه‬
‫ا‬
‫الشروط‬
‫التالية‬
:
•
‫المدخالت‬
Input
:
‫قيمة‬
‫أو‬
‫مجموعة‬
‫قيم‬
•
‫المخرجات‬
Output
:
‫قيمة‬
‫أو‬
‫مجموعة‬
‫قيم‬
•
‫الوضوح‬
Definiteness
:
‫كل‬
‫خطوة‬
‫من‬
‫خطوات‬
‫الحل‬
‫يجب‬
‫أن‬
‫تكون‬
‫مفهومة‬
‫وواضحة‬
‫المعنى‬
‫وغير‬
‫غامضة‬
‫ا‬‫ال‬‫مث‬
Add 6 or 7
‫هذه‬
‫العبارة‬
‫غير‬
‫مفهومة‬
‫النها‬
‫غير‬
‫واضحة‬
•
‫المحدودية‬
Finiteness
:
‫كل‬
‫خطوة‬
‫يمكن‬
‫حلها‬
‫خالل‬
‫فترة‬
‫زمنية‬
‫محددة‬
‫ا‬‫ال‬‫مث‬
«
‫قسم‬
‫الرقم‬
10
‫على‬
3
‫بدقة‬
‫عالية‬
»
‫هذه‬
‫العبارة‬
‫غير‬
‫محدودة‬
‫ويجب‬
‫ان‬
‫ال‬
‫يسمح‬
‫بها‬
•
‫الفعالية‬
(
‫المحلولية‬
)
Effectiveness
:
‫كل‬
‫خطوة‬
‫يجب‬
‫أن‬
‫تكون‬
‫ممكنة‬
‫الحل‬
.
‫ا‬‫ال‬‫مث‬
«
0/3
»
‫اليمكن‬
‫حلها‬
‫ا‬‫ا‬‫أبد‬
14
1 2
3 4
5 6
Jens Martensson
‫الخوارزمية‬ ‫بين‬ ‫الفرق‬
Vs.
‫البرنامج‬
•
‫الخوارزمية‬
‫يجب‬
‫أن‬
‫تتوافر‬
‫فيها‬
‫الشروط‬
‫الخمسة‬
‫الساب‬
‫قة‬
•
‫الخوارزمية‬
‫يمكن‬
‫وصفها‬
‫بطرق‬
‫عديدة‬
(
Pseudo Code
‫الشفرة‬
‫المزيفة‬
-
‫المخططات‬
‫االنسيابية‬
Flow Chart
-
‫اللغة‬
‫الطبيعية‬
)
•
‫البرنامج‬
‫يمكن‬
‫أن‬
‫ال‬
‫يحقق‬
‫عامل‬
‫الوضوح‬
•
‫لكل‬
‫لغة‬
‫برمجة‬
‫مترجم‬
‫أو‬
‫مفسر‬
•
‫المفسر‬
‫يقوم‬
‫بتنفيذ‬
‫التعليمات‬
‫منفردة‬
«
Step-By-Step
»
‫بينما‬
‫المترجم‬
‫يأخذ‬
‫البرنامج‬
‫ا‬‫ال‬‫كام‬
‫لتنفيذ‬
‫النتائج‬
‫واظهار‬
‫األخطاء‬
•
‫البرنامج‬
‫عبارة‬
‫عن‬
‫خوارزمية‬
‫وهيكل‬
‫بياني‬
•
‫البرنامج‬
‫طريقة‬
‫لتنظيم‬
‫البيانات‬
15
1 2
3 4
5 6
Jens Martensson
‫الخوارزمية‬ ‫وتصميم‬ ‫تحليل‬
Algorithms Analysis & Design
•
Analysis
‫التحليل‬
• predict the cost of an algorithm in term of resources and performance
•
‫التحليل‬
‫هو‬
‫عبارة‬
‫عن‬
‫تنبؤ‬
‫أو‬
‫التوقع‬
‫بالتكاليف‬
‫الخاصة‬
‫بالخوارزمية‬
‫عند‬
‫استخدم‬
‫ها‬
‫أو‬
‫تنفيذها‬
‫في‬
‫الحاسب‬
‫من‬
‫ناحية‬
‫الموارد‬
‫المادية‬
‫أو‬
‫من‬
‫ناحية‬
‫األداء‬
‫أثناء‬
‫التشغيل‬
‫أو‬
‫التنفيذ‬
.
•
Design
‫التصميم‬
• Design an algorithms which minimize the cost
•
‫التصميم‬
‫هو‬
‫عبارة‬
‫تقليل‬
‫التكاليف‬
‫الخاصة‬
‫بالخوارزمية‬
‫إلى‬
‫أقل‬
‫حد‬
‫ممكن‬
.
16
1 2
3 4
5 6
Jens Martensson
‫الخوارزمية‬ ‫تحليل‬
Algorithms Analysis
•
‫تحليل‬
‫الخوارزمية‬
•
‫هو‬
‫تحديد‬
‫كفاءة‬
‫الخوارزمية‬
‫بالنسبة‬
‫للموارد‬
‫المادية‬
‫وعامل‬
‫األداء‬
‫ث‬
‫م‬
‫تحسين‬
‫هذا‬
‫األداء‬
•
‫هناك‬
‫عاملين‬
‫أساسيين‬
‫يرتبطان‬
‫بقياس‬
‫كفاءة‬
‫الخوارزميات‬
‫هما‬
:
•
‫مقياس‬
‫تعقيدات‬
‫المساحة‬
‫والتخزين‬
Space Complexity
•
‫مقياس‬
‫تعقيدات‬
‫الوقت‬
Time Complexity
17
1 2
3 4
5 6
Jens Martensson
‫مقياس‬
‫تعقيدات‬
‫المساحة‬
‫والتخزين‬
Space Complexity
•
‫كمية‬
‫الذاكرة‬
‫التي‬
‫يتطلبها‬
‫تشغيل‬
‫البرنامج‬
‫إلى‬
‫حين‬
‫اكتماله‬
•
‫يعتمد‬
‫هذا‬
‫المقياس‬
‫على‬
‫جزئين‬
•
‫الجزء‬
‫الثابت‬
‫أو‬
‫المستقل‬
‫عن‬
‫خصائص‬
‫المدخالت‬
‫والمخرجات‬
‫حيث‬
‫يتض‬
‫من‬
‫فراغ‬
‫التعليمات‬
(
Code Space
)
‫مع‬
‫الفراغ‬
‫المخصص‬
‫للمتغيرات‬
(
Data
Space
)
‫سواء‬
‫كانت‬
‫هذه‬
‫المتغيرات‬
‫بسيطة‬
‫أو‬
‫مركبة‬
‫ذات‬
‫الحجم‬
‫الثابت‬
‫إضافة‬
‫إلى‬
‫فراغ‬
‫الثوابت‬
18
1 2
3 4
5 6
‫الثاب‬ ‫الجزء‬
‫ت‬
Data
Space
‫بسيطة‬
‫مركبة‬
Code
Space
Jens Martensson
‫مقياس‬
‫تعقيدات‬
‫المساحة‬
‫والتخزين‬
Space Complexity
•
‫الجزء‬
‫المتغير‬
‫يتألف‬
‫من‬
‫المساحة‬
‫الذي‬
‫يتطلبها‬
‫البرنامج‬
‫للمتغيرات‬
‫المركبة‬
‫والتي‬
‫يتعمد‬
‫حجمها‬
‫على‬
‫المشكلة‬
‫المرا‬
‫د‬
،‫حلها‬
‫إضافة‬
‫إلى‬
‫المساحة‬
‫الخاص‬
‫بالمكدس‬
‫المستخدم‬
‫في‬
‫التداخل‬
(
Reaction
)
19
1 2
3 4
5 6
‫المتغير‬
‫الجزء‬
‫دينامي‬ ‫تخزين‬
‫كي‬
‫مكدس‬
Jens Martensson
‫مقياس‬
‫تعقيدات‬
‫المساحة‬
‫والتخزين‬
Space Complexity
•
‫التخزين‬
‫الديناميكي‬
‫يمكن‬
‫توضيحه‬
‫بالمتغيرات‬
‫التي‬
‫ي‬
‫دخلها‬
‫المبرمج‬
(
‫يدخل‬
‫قيمتها‬
)
‫وكذلك‬
‫يتحكم‬
‫بأسمائها‬
‫فهي‬
‫تعتمد‬
‫على‬
‫ادخال‬
‫المبرمج‬
‫للبرنامج‬
•
‫أما‬
‫القيم‬
‫المركبة‬
‫فهي‬
‫المصفوفة‬
‫التي‬
‫تمثل‬
‫بالمكدس‬
Stack
‫حيث‬
‫أن‬
‫المؤشر‬
(
Sp
)
‫ا‬‫ا‬‫معماري‬
‫ا‬‫ا‬‫وبرمجي‬
‫يسمى‬
Top
20
1 2
3 4
5 6
Jens Martensson
‫مقياس‬
‫تعقيدات‬
‫المساحة‬
‫والتخزين‬
Space Complexity
•
Code segment
‫يمكن‬
‫أن‬
‫يمثل‬
‫بالدوال‬
‫الجاهزة‬
‫مثل‬
SQRT
‫أو‬
Sin
‫أو‬
Read
‫أما‬
Heap Segment
‫يمكن‬
‫أن‬
‫تكون‬
‫المتغيرات‬
‫التي‬
‫يتسخدمها‬
‫البرنامج‬
•
‫يمكن‬
‫صياغة‬
‫تعقيدات‬
‫الفراغ‬
S(p)
‫للبرنامج‬
(
P
)
‫بالشكل‬
‫التالي‬
:
S(p)=Const+Sp
‫حيث‬
‫أن‬
Const
‫تمثل‬
‫جزء‬
code segment
‫والمتغيرات‬
‫البسيطة‬
Sp
‫تمثل‬
‫خصائص‬
‫المشكلة‬
‫المطروحة‬
21
1 2
3 4
5 6
Jens Martensson
‫مقياس‬
‫تعقيدات‬
‫المساحة‬
‫والتخزين‬
Space Complexity
22
1 2
3 4
5 6

‫يتم‬
‫حساب‬
‫تعقيدات‬
‫الخزن‬
‫من‬
‫خالل‬
‫حساب‬
‫عدد‬
‫الخاليا‬
‫التي‬
‫نحتاجها‬
‫النجاز‬
‫الخطوات‬
‫الحسابية‬
‫المطلوبة‬
‫لحل‬
‫المشكلة‬
‫مع‬
‫استبعات‬
‫عناصر‬
‫التخزين‬
‫المخصصة‬
‫للمدخالت‬
.

‫أي‬
‫أنه‬
‫تتم‬
‫االشارة‬
‫إلى‬
‫عدد‬
‫الخاليا‬
‫بدون‬
‫تعريف‬
‫دقيق‬
‫لها‬

‫يمكن‬
‫تصور‬
‫الخلية‬
‫بانها‬
‫مقدار‬
‫من‬
‫الذاكرة‬
‫كافي‬
‫لتخزين‬
‫عد‬
‫د‬
‫واحد‬
‫فقط‬
Jens Martensson
‫مقياس‬
‫تعقيدات‬
‫الوقت‬
Time Complexity
•
‫مقياس‬
‫تعقيدات‬
‫الوقت‬
Time Complexity
•
‫كمية‬
‫الوقت‬
‫التي‬
‫يتطلبها‬
‫تشغيل‬
‫البرنامج‬
‫إلى‬
‫حين‬
،‫اكتماله‬
‫وهي‬
‫حاص‬
‫ل‬
‫جمع‬
‫وقت‬
‫الترجمة‬
(
Compilation Time
)
‫و‬
‫وقت‬
‫تشغيل‬
‫البرنامج‬
(
Running
Time
)
‫حسب‬
‫الصياغة‬
‫التالية‬
T(p)=const + Tp
‫حيث‬
Const
‫يمثل‬
‫ثابت‬
‫خاص‬
‫بوقت‬
‫الترجمة‬
‫والتأليف‬
Tp
‫يمثل‬
‫وقت‬
‫تشغيل‬
‫البرنامج‬
23
1 2
3 4
5 6
Jens Martensson
‫مقياس‬
‫تعقيدات‬
‫الوقت‬
Time Complexity

‫لقياس‬
‫الوقت‬
‫يمكن‬
‫استخدام‬
‫طريقة‬
‫عد‬
‫الخطوات‬
(
Steps Counting
)
‫التي‬
‫يتم‬
‫فيها‬
‫تحديد‬
‫العدد‬
‫الكلي‬
‫للخطوات‬
‫المنفذة‬
‫من‬
‫خالل‬
‫ال‬
‫خوارزمية‬
‫بحيث‬
‫يكون‬
‫هذا‬
‫العدد‬
‫دالة‬
‫في‬
‫خصائص‬
‫المثال‬
/
‫المشكلة‬

‫بالرغم‬
‫من‬
‫امتالك‬
‫مشكلة‬
/
‫مثال‬
،‫ما‬
‫العديد‬
‫من‬
‫الخصائص‬
(
‫المدخالت‬
،
،‫المخرجات‬
‫قيمة‬
‫المدخالت‬
‫والمخرجات‬
)
‫إال‬
‫أن‬
‫عدد‬
‫الخطوات‬
‫يتم‬
‫احتسابه‬
‫كمجموعة‬
‫فرعية‬
‫منها‬
.
‫حيث‬
‫يتم‬
‫في‬
‫العادة‬
‫اختيار‬
‫الخص‬
‫ائص‬
‫التي‬
‫نرغب‬
‫بها‬
.

‫الخطوة‬
‫في‬
‫البرنامج‬
Step

‫هي‬
‫أي‬
‫خطوة‬
‫حسابية‬
‫وقتها‬
‫مستقل‬
‫عن‬
‫خصائص‬
‫المشكلة‬
/
‫المثال‬
.

‫ا‬‫ال‬‫مث‬
:
‫اعتبر‬
‫أن‬
10
‫عمليات‬
‫جمع‬
‫كخطوة‬
،‫واحدة‬
‫و‬
100
‫عملية‬
‫جمع‬
‫كخطوة‬
‫واحدة‬
‫ا‬‫ا‬‫أيض‬
.
24
1 2
3 4
5 6
Jens Martensson
‫مثال‬
‫ا‬‫ال‬‫مث‬
:
‫اذا‬
‫كان‬
‫لدينا‬
‫البرنامج‬
‫التالي‬
Float abc(float a, float b, float c)
{ return (a+b+6*c+(a+b+c)/(a+b)+4.0); }
‫تعقيدات‬
‫التخزين‬
‫والمساحة‬
‫تتطلب‬
‫الدالة‬
abc
‫خمسة‬
‫خاليا‬
‫للتخزين‬
‫على‬
‫الذاكرة‬
‫لقيم‬
‫المتغيرات‬
a
‫و‬
b
‫و‬
c
‫و‬
‫المتغير‬
‫الذي‬
‫يحمل‬
‫اسم‬
‫الدالة‬
‫وعنوان‬
‫العودة‬
return address
.
‫نوع‬
‫التعقيد‬
‫للمساحة‬
:
‫هو‬
‫مخزن‬
‫ثابت‬
‫ال‬
‫يعتمد‬
‫على‬
‫خصائص‬
‫المثال‬
/
‫المشكلة‬
.
Sa,b,c(a,b,c)=0
‫ان‬
‫قيمة‬
‫الصفر‬
‫تعني‬
‫أن‬
‫الخزن‬
‫ثابت‬
‫أي‬
‫ال‬
‫يتعتمد‬
‫على‬
‫خصائص‬
‫المثال‬
‫تعقيدات‬
‫الزمن‬
‫نستخدم‬
‫هنا‬
‫صيغة‬
‫عد‬
‫الخطوات‬
(
Count Steps
)
‫لقياس‬
‫تقدير‬
‫الوقت‬
‫حيث‬
‫أن‬
‫عد‬
‫الخطوات‬
‫لهذه‬
‫الدالة‬
‫يساوي‬
‫واحد‬
‫ولهذا‬
‫فإن‬
Ta,b,c(a,b,c)=0
‫قيمة‬
‫الصفر‬
‫هنا‬
‫تعني‬
‫أن‬
‫الوقت‬
‫ثابت‬
‫ا‬‫ا‬‫أيض‬
25
1 2
3 4
5 6
Jens Martensson
‫مـثال‬
Example
‫ايجاد‬
‫ناتج‬
‫العالقة‬
𝑖=1
𝑛
𝑎𝑖
Algorithm Sum(A,n):
Input: a positive integer n and array A indexed form 1 to n.
Output: s, the sum of the number in A.
1. S  0
2. for j  1 to n
3. for S  S + A[j]
4. end for
5. return S
26
1 2
3 4
5 6
Jens Martensson
‫مـثال‬
Example
‫تعقيدات‬
‫التخزين‬
:
‫تتطلب‬
‫هذه‬
‫المشكلة‬
‫خليتان‬
j,S
‫وهو‬
‫خزن‬
‫ثابت‬
‫ال‬
‫يعتمد‬
‫على‬
‫خصائص‬
‫المثال‬
Ssum(n)=0
‫تعقيدات‬
‫الزمن‬
1. 1
2. n+1 1 + n+1 + n + 0 + 1 2n+3
3. n
4. 0 Tsum(n)=2n+3
5. 1
27
1 2
3 4
5 6
Jens Martensson
‫مـثال‬
Example
‫أكتب‬
‫خوارزمية‬
‫تقوم‬
‫بإيجاد‬
‫محيط‬
‫ومساحة‬
‫دائرة‬
‫نصف‬
‫قطرها‬
‫معلوم‬
R
‫؟‬
𝐴𝑟𝑒𝑎 𝑜𝑓 𝐶𝑖𝑟𝑖𝑐𝑙𝑒 = 𝜋𝑟2,
𝑐𝑖𝑟𝑐𝑢𝑚𝑓𝑒𝑟𝑒𝑛𝑐𝑒 𝑜𝑓 𝐴𝑟𝑒𝑎 = 2𝜋𝑟
𝜋=3.14
Solution
Algorithm (Area and circumference of a circle):
Input: R (the radius of circle)
Output: A and C ( area and circumference)
1- Start
2- Read R
3- Assign pi=3.14
4- compute A=pt*R*R
5- compute C=2*pi*R
6- Return A,C
7- End
28
1 2
3 4
5 6
Jens Martensson
‫مـثال‬
Example
Algorithm add(A,B,m,n) :
Input: a positive integer m,n and two dimensional arrays of numbers A and B each of which has its
rows and indexed form 1 to m and column form 1 to n.
Output: a two dimensional array of number c, containing addition of A and B.
1. For i 1 to m
2. For j  1 to n
3. c[i,j]  A[i,j] + B [i,j]
4. End for
5. End for
6. Return Array C
‫تعقيدات‬
‫الخزن‬
:
Sadd(m,n)=mn+2
‫تعقيدات‬
‫الزمن‬
:
1. … m+1
2. …
3. … ms m(n+1+n) m(2n+1)
4. …
5. …
6. … mn T add (m,n)=3mn+2m+1
29
1 2
3 4
5 6
Jens Martensson
‫مـثال‬
Example
‫أكتب‬
‫خوارزمية‬
‫تقوم‬
‫بإيجاد‬
‫محيط‬
‫ومساحة‬
‫دائرة‬
‫نصف‬
‫قطرها‬
‫معلوم‬
R
‫؟‬
𝐴𝑟𝑒𝑎 𝑜𝑓 𝐶𝑖𝑟𝑖𝑐𝑙𝑒 = 𝜋𝑟2,
𝑐𝑖𝑟𝑐𝑢𝑚𝑓𝑒𝑟𝑒𝑛𝑐𝑒 𝑜𝑓 𝐴𝑟𝑒𝑎 = 2𝜋𝑟
𝜋=3.14
Solution
Algorithm (Area and circumference of a circle):
Input: R (the radius of circle)
Output: A and C ( area and circumference)
1- Start
2- Read R
3- Assign pi=3.14
4- compute A=pt*R*R
5- compute C=2*pi*R
6- Return A,C
7- End
30
1 2
3 4
5 6
Jens Martensson
‫مـثال‬
Example
‫اكتب‬
‫خوارزمية‬
‫خاصة‬
‫بطباعة‬
‫االعداد‬
‫من‬
1
‫إلى‬
10
‫على‬
‫شاشة‬
‫الحاسب‬
Algorithm (Print the numbers form 1 to 10):
Input:
Output: 1 2 3 4 5 6 7 8 9 10
1- Start
2- Assign x  1
3- Print x
4- x=x+1 (increase x by one)
5- if x > 10
a. yes: Go to step 6
b. No : Go to step 3
6- end
31
1 2
3 4
5 6
Jens Martensson
‫مـثال‬
Example
‫اكتب‬
‫خوارزمية‬
‫خاصة‬
‫بطباعة‬
‫االعداد‬
‫من‬
1
‫إلى‬
10
‫على‬
‫شاشة‬
‫الحاسب‬
Algorithm (Print the numbers form 1 to 10):
Input:
Output: 1 2 3 4 5 6 7 8 9 10
1- Start
2- Assign x  1
3- Print x
4- x=x+1 (increase x by one)
5- if x > 10
a. yes: Go to step 6
b. No : Go to step 3
6- end
32
1 2
3 4
5 6
Flowcharts
‫التدفق‬ ‫مخططات‬
Jens Martensson
‫التدفق‬ ‫خرائط‬
Flowcharts
•
‫بب‬ ‫ارتباطها‬ ‫وكيفية‬ ‫المطروحة‬ ‫المشكلة‬ ‫حل‬ ‫خطوات‬ ‫بيان‬ ‫في‬ ‫التدفق‬ ‫خرائط‬ ‫تستخدم‬
‫عضها‬
‫للتوضيح‬ ‫اصطالحية‬ ‫رموز‬ ‫باستخدام‬
•
‫التدفق‬ ‫خرائط‬ ‫استخدام‬ ‫أهمية‬
‫التدفق‬ ‫خرائط‬ ‫الستخدام‬ ‫المهمة‬ ‫االسباب‬ ‫من‬
:
.1
‫المبرمج‬ ‫ذهن‬ ‫في‬ ‫الحل‬ ‫لخطوات‬ ‫متكاملة‬ ‫صورة‬ ‫اعطاء‬
.2
‫لنهايتها‬ ‫بدايتها‬ ‫من‬ ‫المشكلة‬ ‫اجزاء‬ ‫بكل‬ ‫االحاطة‬ ‫من‬ ‫المبرمج‬ ‫تمكن‬
.3
‫ال‬ ‫االخطاء‬ ‫خاصة‬ ،‫البرنامج‬ ‫في‬ ‫عادة‬ ‫تقع‬ ‫التي‬ ‫األخطاء‬ ‫تشخيص‬ ‫على‬ ‫المبرمج‬ ‫تساعد‬
‫منطقية‬
‫للحل‬ ‫المنطقي‬ ‫التسلسل‬ ‫وضع‬ ‫على‬ ‫اكتشافها‬ ‫يعتمد‬ ‫والتي‬
.4
‫المشكلة‬ ‫اجزاء‬ ‫من‬ ‫جزء‬ ‫اي‬ ‫في‬ ‫التعديالت‬ ‫ادخال‬ ‫سهولة‬
.5
‫والتفرعات‬ ‫االحتماالت‬ ‫فيها‬ ‫تكثر‬ ‫التي‬ ‫المشكالت‬ ‫في‬ ‫خاصة‬ ‫التسلسل‬ ‫دقة‬ ‫متابعة‬
Jens Martensson
‫التدفق‬ ‫خرائط‬
Flowcharts
•
‫بداية‬
/
‫نهاية‬
•
‫إدخال‬
/
‫اخراج‬
•
‫تحزين‬ ‫أو‬ ‫حسابية‬ ‫عملية‬
•
‫تحكم‬
/
‫قرار‬
•
‫تكرار‬
/
‫دوران‬
•
‫فرعي‬ ‫برنامج‬ ‫استدعاء‬
Jens Martensson
‫التدفق‬ ‫خرائط‬
Flowcharts
•
‫سير‬ ‫اتجاه‬
(
‫تدفق‬
)
Flow Line
•
‫وصل‬ ‫نقطة‬
Connector
•
‫تعليق‬
Comment
Jens Martensson
‫التدفق‬ ‫خرائط‬
Flowcharts
•
‫معلوم‬ ‫قطرها‬ ‫نصف‬ ‫الدائرة‬ ‫ومحيط‬ ‫مساحة‬ ‫بحساب‬ ‫تقوم‬ ‫لخوارزمية‬ ‫سريان‬ ‫خريطة‬
R

More Related Content

More from Muhammad Hassan

نموذجاً للوصية قبل حلول الأجل
نموذجاً للوصية قبل حلول الأجلنموذجاً للوصية قبل حلول الأجل
نموذجاً للوصية قبل حلول الأجلMuhammad Hassan
 
تطبيقات الحاسوب في المحاسبة البترولية Computer Applications on Accounting & m...
تطبيقات الحاسوب في المحاسبة البترولية Computer Applications on Accounting & m...تطبيقات الحاسوب في المحاسبة البترولية Computer Applications on Accounting & m...
تطبيقات الحاسوب في المحاسبة البترولية Computer Applications on Accounting & m...Muhammad Hassan
 
مدخل إلى قواعد البيانات Microsoft access
مدخل إلى قواعد البيانات Microsoft accessمدخل إلى قواعد البيانات Microsoft access
مدخل إلى قواعد البيانات Microsoft accessMuhammad Hassan
 
نماذج المخزون
نماذج المخزوننماذج المخزون
نماذج المخزونMuhammad Hassan
 
Queuing theory نظرية الصفوف والانتظار
Queuing theory   نظرية الصفوف والانتظارQueuing theory   نظرية الصفوف والانتظار
Queuing theory نظرية الصفوف والانتظارMuhammad Hassan
 
Decision making عملية اتخاذ القرار
Decision making عملية اتخاذ القرارDecision making عملية اتخاذ القرار
Decision making عملية اتخاذ القرارMuhammad Hassan
 
شبكات الأعمال
شبكات الأعمال  شبكات الأعمال
شبكات الأعمال Muhammad Hassan
 

More from Muhammad Hassan (8)

نموذجاً للوصية قبل حلول الأجل
نموذجاً للوصية قبل حلول الأجلنموذجاً للوصية قبل حلول الأجل
نموذجاً للوصية قبل حلول الأجل
 
تطبيقات الحاسوب في المحاسبة البترولية Computer Applications on Accounting & m...
تطبيقات الحاسوب في المحاسبة البترولية Computer Applications on Accounting & m...تطبيقات الحاسوب في المحاسبة البترولية Computer Applications on Accounting & m...
تطبيقات الحاسوب في المحاسبة البترولية Computer Applications on Accounting & m...
 
مدخل إلى قواعد البيانات Microsoft access
مدخل إلى قواعد البيانات Microsoft accessمدخل إلى قواعد البيانات Microsoft access
مدخل إلى قواعد البيانات Microsoft access
 
تحليل ماركوف
تحليل ماركوفتحليل ماركوف
تحليل ماركوف
 
نماذج المخزون
نماذج المخزوننماذج المخزون
نماذج المخزون
 
Queuing theory نظرية الصفوف والانتظار
Queuing theory   نظرية الصفوف والانتظارQueuing theory   نظرية الصفوف والانتظار
Queuing theory نظرية الصفوف والانتظار
 
Decision making عملية اتخاذ القرار
Decision making عملية اتخاذ القرارDecision making عملية اتخاذ القرار
Decision making عملية اتخاذ القرار
 
شبكات الأعمال
شبكات الأعمال  شبكات الأعمال
شبكات الأعمال
 

Unit1-Algorithm Analysis & Design.pptx