4

Click here to load reader

Lecture 21

Embed Size (px)

Citation preview

Page 1: Lecture 21

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

Page 2: Lecture 21

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

Page 3: Lecture 21

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 خوارزمية الثنائيالبحث

Page 4: Lecture 21

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