Click here to load reader
Upload
samaher-hussein
View
413
Download
5
Embed Size (px)
Citation preview
1
Data Structures
Notes for Lecture 21 Introduction of Searching
By Samaher Hussein Ali
2007-2008
Searching
هو عملية ايجاد عنصر معين في مجموعة من البيانات فاذا آان أوالبحث هو عملية التفيش عن عنصر معين في مجموعة من البيانات
فعالة وهذا يحدث اذا آانت قائمة البحث مرتبة باالعتماد على حقل معين بينما تكون ) ايجابية(بحث ذلك العنصر موجود تكون عملية ال
. عملية البحث غير فعالة عند عدم وجود العنصر في قائمة البحث
* انواع خوارزميات البحث-: منهاالبحثويوجد عدة تصنيفات لخوارزميات
1. البحث التسلسلي خوارزميات
البحث الثنائي ارزميات خو. 2
3 البحث الكتليخوارزميات.
خوارزميات البحث المحرم . 4
بحث الشجرة الثنائية . 5 بحثاسس قياس آفاءة خوارزميات ال *
1. مقدار الخزن الالزم
2. مقدار التعقيدات في الخوارزمية
عدد النقالت او التحريكات او المقارنات في الخوارزمية .3
-: البحث ويمكن حسابه حسب القانون التاليطولمعدل .4
∑=
=n
iii PCL
1
-:حيث
L معدل طول البحث
Ci عدد المقارنات المطلوبة للوصول الى العنصر
P احتمالية الوصول الى العنصر
ة من وت البحث التسلسلي خوارزميات ع عناصر القائم تضمن عملية البحث عن عنصر معين في قائمة من العناصر من خالل مسح جمي
-:غير موجود او الوصول الى نهاية القائمة عندما يكون العنصر حالة وجودهبدايتها وبالتسلسل لحين الوصول الى العنصر المطلوب في
Sequential Search Algorithm
Sequential Search Algorithm البحث التسلسليخوارزميات
Block Search Algorithm
Binary Search Algorithm
Tabu Search Algorithm
Average Search Length
2
(. )(nΟ ( ة هو ووقت تنفيذ الخوارزمي . (2n لذا فان معدل عدد المقارنات هو (
.يستخدم البحث التسلسلي مع البيانات التي تحتاج الى معالجة دورية مثل نظام الرواتب
Algorithm of sequential search
(Given an unordered vector k consisting of n+1 elements, (n>=1) this algorithm search the vector for a
particular elements having the value x)
1. [ initialize search]
I=1
K(n+1)=x
2. [search the vector ]
Repeat
While k(i)<>x
I=i+1
3. [successful search]
If i=n+1 then
Msgbox("unsuccessful search")
Else
Msgbox("successful search")
-:مالحظة
عدد العناصر المقرءة او المحسوبة أي = عدد المقارنات
iC i =
∑=
=n
iiPiL
1*
د معدل طول البحث باستخدام فرض ان احتمالية الوصول الى آل عنصر غير متساوية في قائمة تحتوي على خمسة قيود اوجا -:مثال
-: احتمالية الوصول لكل عنصر هيالبحث التسلسلي اذا آانت
P1 0.4
P2 0.3
P3 0.2
P4 0.07
P5 0.03
∑=
=n
iiPiL
1*
L=1*0.4+2*0.3+3*0.2+4*0.07+5*0.03 = 2.03
3
-:فكرتها
-:هذه الخوارزمية تفترض البحث عن عنصر في قائمة مرتبة حسب ترتيب معين وتتضمن الخطوات التالية ان
مع العنصر الذي يقع منتصف القائمة) X(لمراد البحث عنه وليكن رنة العنصر امقا .1
وب .2 ل )X(اذا آان العنصر المطل ضم اق ذي ي ة اذن سينحصر البحث في الجزء ال ع منتصف القائم ذي يق ة العنصر ال من قيم
)جهة اليسار(العناصر االصغر من عنصر المنتصف
ر آا) X(اذا آان العنصر المطلوب .3 ضم ب ذي ي ي الجزء ال ة اذن سينحصر البحث ف ع منتصف القائم ذي يق ة العنصر ال من قيم
3و2الخطوتين ذلك بتكرار والعملية حتى يتم العثور على العنصرتستمر و. )نمجهة الي( من عنصر المنتصف برآالعناصر اال
. مساويًا بالقيمة الى العنصر في منتصف القائمة اذن ستنتهي عملية البحث مباشرتًا)X(اذا آان العنصر المطلوب .4
Algorithm of binary search
(Given a vector k, consisting of n elements in ascending order this algorithm searches the structure for a
given element whose value is given by x. the variables low, middle, and high denote the lower, middle
and upper limits of the search interval respectively)
1. [ initialize search]
Low =1
High =n
2. [perform search]
Repeat thru step4
While low<=high
3. [obtain index of mid point of interval]
Middle=(low + high)/2
4. [compare]
If x<k(middle) then
High=middle+1
Else
If x>k(middle) then
Low=middle+1
Else
Msgbox("successful")
5. [unsuccessful]
Msgbox("unsuccessful")
Binary Search Algorithm خوارزمية الثنائيالبحث
4
في القائمة التالية 45ابحث عن العنصر -:مثال
1 17 45 52 63 81 92 100
-:الحل
Low=1
High=8
Middle=(1+8)/2=4
K(middle)=k(4)=52
X=52
52>45
The element in smallest element list
Low=1
High=3
Middle=(1+3)/2=2
K(middle)=k(2)=17
X=17
17<45
Go to right
45=45 "the element is found and the search is successful"
1 17 45