• Tidak ada hasil yang ditemukan

فصل دوم

N/A
N/A
Protected

Academic year: 2024

Membagikan "فصل دوم"

Copied!
42
0
0

Teks penuh

(1)

هبلغ و میسقت شور

Divide & Conquer (

لوا شخب )

مود لصف

اه متیروگلا یحارط سرد

(2)

هبلغ و میسقت (Divide and Conquer)

هنومن 

يا زا كي هلاسم

ار هب تروص يتشگزاب

هب يدادعت هنومن

رتكچوك ميسقت

يم

دنك ( ات ينامز هك

هار لح هنومن ياه

رتكچوك هب

يگداس لباق

نييعت دنشاب

) و زا لح

. دسر يم گرزب هنومن لح هب رتكچوك ياه هنومن

ميسقت 

(divide) :

هلئسم هب

يدادعت ريز

هلئسم ميسقت

يم دوش .

هبلغ 

(conquer) :

هلئسمريز اه

هب تروص يتشگزاب

لح يم دنوش .

بيكرت 

(combine) :

رد تروص موزل

، بيكرت لح

هلئسمريز اه

يارب نتفاي

باوج هلئسم

يلك

(3)

هبلغ و میسقت (Divide and Conquer)

27 10 12 20 25 13 15 22

27 10 12 20 25 13 15 22

27 10 12 20 25 13 15 22

27 10 12 20 25 13 15 22

10 27 12 20 13 25 15 22

10 12 20 27 13 15 22 25

10 12 13 15 20 22 25 27 میسقت

لح

بیکرت

(4)

ییودود یوج و تسج

(Binary search)

(5)

لاثم 

: يم ميهاوخ رد

هيارآ بترم

x=18 ريز ار

تسج و

وج مينك .

ییودود یوج و تسج

(Binary search)

(6)

تسج و

یوج ییودود

(Binary search)

(7)

ییودود یوجتسج ینامز یگپیچید لیلح ت

رد 

نیرتدب W(n) تلاح

رصنع دروم

رظن زا مامت رصانع

هیارآ رتگرزب

دشاب .

لمع 

يلصا :

دادعت هسياقم

هزادنا 

يدورو :

دادعت رصانع

هيارآ

لح 

: رگا  دشابن دودحم ود زا يناوت هب n

:

(8)

ییودود یوجتسج ینامز یگپیچید لیلح ت

رد 

نیرتدب W(n) تلاح

رصنع دروم

رظن زا مامت رصانع

هیارآ رتگرزب

دشاب .

لح 

:

(9)

یماغدا یزاس بترم

(Merge Sort)

(10)

یماغدا یزاس بترم (Merge Sort)

میسقت 

هيارآ يرصنع n

هب ود ريز هيارآ هب

هزادنا n/2

لح 

ره كي زا

ريز هيارآ اه

اب بترم يزاس

نآ . رگا هيارآريز هب

هزادنا يفاك

كچوك

،دوبن يارب

لح نآ

هب شور يتشگزاب

لمع يم

مينك .

بیکرت 

لح ياه

ريز هيارآ اه

اب ماغدا نآ

اه رد كي هيارآ

بترم .

ماغدا 

هفرطود (two-way merge)

: هب يانعم بيكرت

ود هيارآ بترم

هدش

رد كي هيارآ بترم

تسا

.

(11)

Merge Sort

27 10 12 20 25 13 15 22

27 10 12 20 25 13 15 22

27 10 12 20 25 13 15 22

27 10 12 20 25 13 15 22

10 27 12 20 13 25 15 22

10 12 20 27 13 15 22 25

10 12 13 15 20 22 25 27 میسقت

لح

بیکرت

(12)

یماغدا یزاس بترم متیروگلا mergeSort (

)

نیا  متیروگلا

(in-place) اجرد

یمن دشاب

اریز زا

ود هیارآ یکمک

هدافتسا یم

دنک

.

(13)

ماغدا merge (

)

(14)

ینامز یگپیچید لیلح ت ماغدا متیروگلا

رد 

نیرتدب w(n) تلاح

: ( ينامز هك

مامت هسياقم

اه رد هقلح تروص

هتفرگ دشاب

ينعي

ًلاثم هب i

هديسر h دشاب

j و m-1 هب

)

لمع 

يلصا :

هسياقم و U[i]

V[j]

هزادنا 

يدورو :

و m

، h دادعت رصانع

ود هيارآ

1 )

,

( m h  h  m 

w

(15)

لیلح ت یگپیچید

ینامز بتمر

یزاس

یماغدا

(16)

لیلح ت یگپیچید

ینامز بتمر

یزاس یماغدا

نيرتدبرد 

w(n) تلاح

لمع 

يلصا :

هسياقم يا

هك رد ماغدا ماجنا

يم دوش

هزادنا 

يدورو :

دادعت رصانع

هيارآ h = n/2 , m = n - h

1 )

( )

( )

( n  w h  w m  h  m 

w

(17)

لیلح ت یگپیچید

ینامز بتمر

یزاس یماغدا

نيرتدبرد 

w(n) تلاح :

لمع 

یلصا :

هسياقم يا

هك رد ماغدا ماجنا

يم دوش

هزادنا 

يدورو :

دادعت رصانع

هيارآ

لح 

:

(18)

یماغدا یزاس بتمر هظفاح فرصم

(19)

void mergeSort2 (index low, index high) {

index mid;

if (low < high) {

mid = [(low + high)/2];

mergesort2(low, mid);

mergesort2(mid + 1, high);

merge2(low, mid, high);

} }

یماغدا یزاس بترم متیروگلا ( 2

mergeSort2

)

(20)

1. void merge2 (index low, index mid, index high)

2. {

3. index i, j, k;

4. keytype U[low .. high]; // A local array needed for merging 5. i = low; j = mid + 1; k = low;

6. while (i ≤ mid && j ≤ high){

7. if (S[i]<S[j]){

8. U[k] = S[i];

9. i++;

10. } 11. else{

12. U[k] = S[j];

13. j++;

14. } 15. k++;

16. }

ماغدا ( 2

merge2

)

(21)

لیلح ت یزاس بتمر ینامز یگپیچید

یماغدا 2

نيرتدبرد 

w(n) تلاح

لمع 

يلصا :

هسياقم يا

هك رد ماغدا ماجنا

يم دوش

هزادنا 

يدورو :

دادعت رصانع

هيارآ h = n/2 , m = n - h

لح 

) :

lg (

) 1 (

lg )

( n n n n n n

w     

(22)

بتمر هظفاح فرصم یزاس

یماغدا

2

(23)

عیرس یزاس بترم

(Quick Sort)

(24)

طسوت 

Hoare رد

لاس 1962

هئارا دش

.

لحارم 

متیروگلا :

باختنا 

رصنع يروحم

(pivot) :

دناوتيم ره

يرصنع دشاب

(

ًلاثم رصنع

لوا )

يياجباج 

رصانع هيارآ

و ميسقت نآ

هب ود شخب هب

يروط هك

رصانع رتكچوك

زا

رصنع يروحم

رد تمس پچ

و رصانع رتگرزب

زا نآ رد تمس تسار

نآ رارق

دنريگب .

یزاس بترم عیرس

(Quick Sort)

(25)

یزاس بترم عیرس

(Quick Sort)

(26)

زارفا

(Partitioning)

(27)

Partitioning (

رفص حطس )

6 10 13 5 8 3 2 11

j i

6 10 13 5 8 3 2 11 j i

6 10 13 5 8 3 2 11

j i

6 10 13 5 8 3 2 11

j i

6 5 13 10 8 3 2 11

j i

6 5 13 10 8 3 2 11

j i

6 5 3 10 8 13 2 11

j i

6 5 3 10 8 13 2 11

j i

6 5 3 2 8 13 10 11

j i

6 5 3 2 8 13 10 11

j

(28)

Partitioning (

كي حطس )

8 13 10 11

j i

2 5 3

j i

8 13 10 11

j i

8 13 10 11

j i

2 5 3

j i

2 5 3 j

2 5 3 6 8 13 10 11

(29)

Partitioning (

ود حطس )

13 10 11

j i

8 13 10 11

5 3

j i

2 5 3

2 5 3 6 8 13 10 11

5 3 j, i

13 10 11 j, i

3 5

13 10 11 j, i 13 10 11

j i

(30)

Partitioning (

هس حطس )

8 13 10 11 2 5 3

2 5 3 6 8 13 10 11

3

3 5 11 10 13

11 10

j i

(31)

Partitioning (

راهچ حطس )

8 13 10 11 2 5 3

2 5 3 6 8 13 10 11

3

3 5 11 10 13

10 11

10

(32)

Partitioning

(33)

زافرا متیروگلا ینامز یگپیچید

رد 

مامت تلااح

T(n)

لمع 

يلصا :

دادعت هسياقم

هزادنا 

يدورو :

دادعت رصانع

هيارآ n = high – low + 1

رصنع 

لوا اب هيقب رصانع

هسياقم يم

دوش

T(n) = n - 1 .

(34)

عیسر یزاس بتمر متیروگلا ینامز یگپیچید (

تلاح نیتردب )

نامز 

ارجا هب نزاوتم ندوب

اي ندوبن زارفا

يگتسب دراد

.

نيرتدب 

تلاح ينامز

تسا هك

هيارآ زا

لبق بترم دشاب

.

راومه 

ه هيارآ يلصا هب

كي هيارآ يلاخ و

كي هيارآ n-1 اب

رصنع زارفا

يم دوش .

لمع 

يلصا :

هسياقم رصانع

اب رصنع يروحم

هزادنا 

يدورو :

دادعت رصانع

هيارآ

w(n) = w(0) + w(n-1) + n-1

يزاس بترم نامز پچ تمس هيارآ

يزاس بترم نامز تسار تمس هيارآ

ماجنا نامز

زارفا لمع

(35)

عیسر یزاس بتمر متیروگلا ینامز یگپیچید (

تلاح نیتردب

)

(36)

عیسر یزاس بتمر متیروگلا ینامز یگپیچید (

نیگنایم تلاح )

لامتحا 

هكنيا ره

كي زا

رصانع هب

ناونع روحم

باختنا دوش

ار ربارب

،هتفرگ

رد 1/n رظن

يم ميريگ .

لح 

:

 

 

 n

p

n p

n A p

n A n

A

1

1

) (

) 1 (

1 )

(

(37)

عیسر یزاس بتمر متیروگلا ینامز یگپیچید (

نیگنایم تلاح )

شور 

لح :

 

 

 n

p

n p

n A p

n A n

A

1

1

) (

) 1 (

1 )

(

(38)

عیسر یزاس بتمر متیروگلا ینامز یگپیچید (

نیگنایم تلاح

)

(39)

عیسر یزاس بتمر متیروگلا ینامز یگپیچید (

نیگنایم تلاح

)

(40)

عیسر یزاس بتمر متیروگلا ینامز یگپیچید (

نیگنایم تلاح

)

(41)

زارفا (Partitioning)

يارب 

هكنيا يياراك

متيروگلا زارفا

ار رتهب هدرك

و رصنع يروحم

بسانم ار

باختنا دننك

زا شور يفداصت

(randomized) هدافتسا

يم دننك .

لاؤس 

: اب نيا

،رييغت رد

متيروگلا زارفا

هچ يرييغت دياب

داجيا

؟دوش

pivotIndex = random(low, high)

pivotItem = s[pivotIndex]

(42)

اهتنا رد تشگزاب (Tail-recursion)

تشگزاب 

رد اهتنا هب

متيروگلا يياه

هتفگ يم

دوش هك

رد اهنآ چيه

يلمع

سپ زا

يناوخارف يتشگزاب

ماجنا يمن

ددرگ .

لاثم 

:

تسج 

يوجو ييودود

بترم 

يزاس عيرس

رد 

نيا هتسد زا

متيروگلا اه

داجيا كي

هخسن يراركت

راك يناسآ تسا

.

Referensi

Dokumen terkait