lecture 12 مرتب ساز ي و ادغام فايلها (sorting and merging files) (sections 8.3...

27
File Structure Dr. M. Rahgozar In the Name of God In the Name of God Lecture 12 Lecture 12 ز ا س ب تر م يا ه ل ي ا ف ام غ و اد(Sorting and Merging files) (Sections 8.3 - 8.5) (Sections 8.3 - 8.5)

Upload: hop

Post on 18-Mar-2016

39 views

Category:

Documents


0 download

DESCRIPTION

Lecture 12 مرتب ساز ي و ادغام فايلها (Sorting and Merging files) (Sections 8.3 - 8.5). مرتب ساز ي و ادغام فايلها (Sort and Merge of files). کاربرد ها ي ديگ ر پردازش همزمان ( Co-sequential processing ) کدامند؟ الگوريتم ادغام چندتايي ( K-way Merge ) چگونه است؟ - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar

In the Name of GodIn the Name of God

Lecture 12Lecture 12ساز فايلها يمرتب ادغام و

(Sorting and Merging files) (Sections 8.3 - 8.5)(Sections 8.3 - 8.5)

Page 2: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-2

ساز فايلها يمرتب ادغام و(Sort and Merge of files)

ديگ ها کاربرد همزمان )ي پردازش Co-sequentialرprocessing )کدامند؟

( چندتايي ادغام است؟ (K-way Mergeالگوريتم چگونه

زCسا مرتب چيست؟ Selection Tree يروش

زCسا مرتب است؟ Heap Sort يروش چگونه

روشOverlapping درHeap Sort است؟ چگونه

سازي بزرگ مرتب دارد؟ فايلهاي مشکالتي چه

زCسا مرتب چيست؟ Merge-Sort يروش

Page 3: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-3

ساز فايلها يمرتب ادغام و(Sort and Merge of files)ديگ ها کاربرد همزمان ر ي Co-sequential) کدامند؟ پردازش

processing )

الگوريتم Cچندتايي ( K-way Merge ) ادغام

ساز روش Selection Tree يمرتب

ساز روش Merge-Sort يمرتب

چندتايي الگوريتم است؟ (K-way )ادغام چگونه تعداد شده Kادغام مرتب توليد ليست واحد و ليست (يک شده ) .مرتب

قبلي )تعميم .(way-2الگوريتم

تعداد تعريف با نام ليست Kبرداري :List [K]...List [1] به

تعداد تعريف با نام آيتم Kبرداري item[ K]...item [1] :به

Page 4: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-4

ساز فايلها يمرتب ادغام و

چندتايي ) ادغام است؟ (K-wayالگوريتم چگونهادغام هاي حذفبا ) الگوريتم :(تکراريآيتم

1) MinItem = set to min of item[1]…item[ K]• Output MinItem to output list ( 309ص

(کتاب

3) For i = 1 to K do: If item[ i ]= MinItem then

Get next item[ i ] from List[ i ]

Page 5: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-5

ساز فايلها يمرتب ادغام وساز مرتب چيست؟ Selection Tree يروش که شد ميبا ادغام براي ديگر الگوريتم اي بهاشميک دوره ( مسابقات فوتبال ) مثل

ميکند .عمل

ها دداتعوقتي از ليست الگوريتم 8بيش اين دارد باشد ( .ارجحيت چCرا؟) يک کند Log 2(K) عمقبا Binary Treeمانند مي .عمل

8.15شکل کتاب 311ص مثال:

7, 10, 17.... List 09, 19, 23.... List 1

8, 16, 29.... List 715, 20, 30.... List 65, 6, 25.... List 5

12, 14, 21.... List 418, 22, 24.... List 311, 13, 32.... List 2

7

11

5

8

7

5

5input

Page 6: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-6

ساز فايلها يمرتب ادغام وساز مرتب است؟ Heap Sort يروش چگونه

( حافظه در سازي مرتب الگوريتم .ميباشد( RAMيکHeap درخت ارتفاع کامل يدودوييک با Height = log nاست

گره کليد ( node )هر که يک ندارد پدر بيشتر گره کليد برابر يا بزرگتر(parent )ميباشد.

آرايهيک بصورت( Array )شودميذخيره.( گره هر آن ( iبراي هاي )فرزندان گره اند( 2i+1و( )2iدر شده .ذخيرهگره )پدر گره( )jهر .باشدمي( j/2در

A

B C

E

G F

H I D

1 2 3 4 5 6 7 8 9

A B C E H I D G F

0

Page 7: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-7

ساز فايلها يمرتب ادغام واست؟ Heap Sortدر Insertالگوريتم چگونه

جديد ميشود Heap آخر در رکورد .اضافه

آن پدر کليد گره کليد کوچکتر مقايسهبا آن مقدار اگر و شود ميپدر گره محل با آن محل .ميشود تعويضبود

عمل لزوم صورت مييابد( Rootدرخت )ريشهتا (2 )در .ادامه

A

F

H…

)1( B becomes H’s left child;)2( then B is swapped with H;)3( then B is swapped with F.

A

B

F

D

G

D

G

H

B

… ……

Page 8: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-8

Heap Sortدر Insertالگوريتم int Heap::Insert(char * newKey){

if (NumElements == MaxElements) return FALSE;NumElements++; // add the new key at the last positionHeapArtay[NumElementsJ = newKey;// re-order the heapint k = NumElements; int parent;while (k > 1) //I k has a parent{

parent = k / 2;if IComparelk. parent) >= 0) break;

// HeapArray[k] is in the ri9ht place// else exchange k and parentExchange(k , parent);k = parent;

}return TRUE;

}

( 8.17شکل ،314ص )

Page 9: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-9

ساز فايلها يمرتب ادغام و

است؟ Heap Sortدر Removeالگوريتم چگونهکليد 1( گره کوچکترين در .ميشود خارجميباشد Rootکهکليد )2( گره( آخرينبزرگترين به .دگردمي منتقل Rootگرهبا 3( آن فرزند کليد کليد جاي مقايسهکوچکترين بود بيشتر اگر و شود مي

دو .ميشود تعويضآنعمل 4( لزوم صورت مي Heap آخرتا (3)در .دگردتکرار

A

B C

E

G F

H I D

1 2 3 4 5 6 7 8 9

A B C E H I D G F

0

Page 10: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-10

Heap Sortدر Removeالگوريتم char * Heap::Remove(){ //remove the smallest element, reorder the heap, and return the smallest

element. put the smallest value into 'val' for use in return char * val = HeapArray[1]; HeapArray[1] = HeapArray[NumElements]; //put largest value into root NumElements--; // decrease the number of elements // reorder the heap by exchanging and moving down int k = 1; // node of heap that contains the largest value int newK; // node to exchange with largest value while (2*k <= NumElements) // k has at least one child { // set newK to the index of smallest child of k if (Compare(2*k, 2*k+1)<0) newK = 2*k; else newK = 2*k+1; if (Compare(k, newK) < 0) break; // done if k and newK are in order Exchange(k, newK); // k and newK out of order k = newK; // continue down the tree } return val;}

( شکل 317ص ،8.20 )

Page 11: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-11

ساز فايلها يمرتب ادغام واست؟ Heap Sortدر Overlappingروش چگونه

اعمال دهد مي دهيم يکديگر بمواCزاترا پرداCزشو I/Oاجازه . انجام ن ،پردازششروع براي حافظه يستنياز در ها داده تمام شده Loadکه

(inputباشند ) شروع برايoutput ن باشد پردازش که يستنيازي شده تمام کامال ها .داده

Total RAM area allocated for heap

First input buffer. First part of heap is built here. The first record is added to the heap, then the second record is added, and so forth

Second input buffer. This buffer is being filled while heap is being built in first buffer.

( شکل 316ص ،8.19 )

Page 12: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-12

ساز فايلها يمرتب ادغام واست؟ Heap Sortدر Overlappingروش چگونه

اعمال دهد مي دهيم بموازاترا پردازش و I/Oاجازه انجام . يکديگر ن ،پردازششروع براي ها که يستنياز داده حافظه تمام شده Loadدر

(inputباشند ) شروع برايoutput ن ها پردازش که يستنيازي باشد تمامکامال داده .شده

Second part of heap is built here. The first record is added to the heap, then the second record, etc

Third input buffer. This buffer is filled while heap is beingbuilt in second buffer

Third part of heap is built here

Fourth input buffer is filled while heap is being built in third buffer

Page 13: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-13

ساز فايلها يمرتب ادغام وساز مرتب چيست؟ Merge-Sort يروش

سازي Mergeاز چرا مرتب بزرگ براي استفاده فايلهايميشود؟

سازي بزرگ مرتب دارد؟ فايلهاي مشکالتي چه

مثال: گيريم مي نظر در زير مش�خصات با :فايلي

تعداد : 8000000رکوردها طول : رکورد بايت 100هر بايت 10: کليدطول

که کنيم براي حافظهفرض استفاده به sortقابل بايت 10محدود باشد مگا

Page 14: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-14

بزرگ فايلهاي سازي مرتبسازي بزرگ مرتب دارد؟ فايلهاي مشکلي چه

:)... ادامه ) مثال کل هچCدارد؟ يمش وجود CازیCس مرتب برای

فايل کل براي الزم ميباشد مگابايت 800حافظه الزم فايل کليد براي فقطحافظه بايت 80 هاي ميباشد مگا Cسازي بود طوالنيبسيار ديسکCروي مرتب .خواهد

الزم خواندن زمان يکبار فقط Cبطور برايRandom با :برابر 11 msec * 8000000 ثانيه 88000يا از يا بود( 24:26:40 )ساعت 24 بيش خواهد

Seagate cheetah9 disk drive (seek + Rotational delay )

Page 15: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-15

بزرگ فايلهاي سازي مرتب :)... ادامه ) مثالحل چه دارد؟ يراه وجود مشکالت اين برای

رکورد 1( تعداد آورده هر حافظه به دهد اجازه حافظه نموده ،که مرتب(internal ) يک در سپس کوچکتر و .بنويسيم فايل

آخر را (1)عمل 2( دهيم تا ادامه شکل 320ص) .فايل ،8.21)

هم 3( با را آمده بدست هاي کنيم ادغامفايل8,000,000 unsorted records

80 internal sorts

………..

80 runs, each containing 100,000 sorted records

Merge

8,000,000 records in sorted order

Page 16: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-16

بزرگ فايلهاي سازي مرتب :)... ادامه ) مثال سازي )دفعات تعداد ؟( RUNمرتبظرفيت : بايت 10000000حافظه هر بايت 100: رکورداندازه د رکوردها تعداد هر 100000=100/10000000( :RUNه )فعدر کل 80=100000/8000000 (:RUN )دفعاتتعداد

Page 17: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-17

بزرگ فايلهاي سازي مرتب :)... ادامه ) مثالهنگام که اي قطعه اندازه ميتوان فايل هر به Mergeاز

آورد است؟ حافظه چقدررکورد 1250 = بايت 125000 = 10000000/80

) چرا؟ )

8,000,000sorted records

1st run = 80 buffers’ )80 accesses(

2nd run = 80 buffers’ )80 accesses(

80th run = 80 buffers’ )80 accesses(

::

800MB file

10MB file

80 buffers)10MB(

( شکل 322ص ،8.22 )

Page 18: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-18

بزرگ فايلهاي سازي مرتب :)... ادامه ) مثال

است؟ زمانها محاسبه چگونه

کوچکتر تشکيلبراي ) رکوCردها خواندنزمان 1( چقدر (فايلهاي است؟

دسترسيزمان : seeks * 11 msec = 1 sec 80کل ) چرا؟)

انتقالزمان : MB @ 14500 B/msec =60 sec 800کل رکوردها خواندن کل زمان : sec 61

کوچک در ) رکوردها نوشتن زمان 2( است؟ (فايلهاي چقدربا 1( است : خواندن زمان همان برابر sec 61رکوردها

) چرا؟)

Page 19: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-19

بزرگ فايلهاي سازي مرتب :)... ادامه ) مثال

است؟ زمانها محاسبه چگونه

قطعات زمان 3( کوچک خواندن هاي است؟ ) Merge براي(فايل چقدر به کوچک فايل يع�ني ) 80هر شود مي تقسيم يا جستجو 80قطعه

seek )جستجوکل تعداد( seek :)6400=80*80جستجو کل زمان : sec70 = msec 11* 6400 کل (60همان انتقالزمان قبل ) مانند ثانيه

) چرا؟) قطعات زمان خواندن 60 + 70 = 130 :ثانيه به کل

Page 20: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-20

بزرگ فايلهاي سازي مرتب :)... ادامه ) مثالاست؟ زمانها محاسبه چگونه

نتايج زمان 4( ديسک Merge نوCشتن است؟ روي چقدر که کنيم بافر فرض با writeبراي I/Oاندازه باشد 200000برابر بايتجستجو دفعاتکل تعداد seeks :4000 = 200000 / 800000000 جستجوکل زمان: sec44 =11 * 4000 کل ( ثانيه 60همان انتقالزمان چرا؟) نتايج نوشتنکل زمان Merge 60 + 44 = 104 :ثانيه به

عمليات زمان4( است؟ Sort-Merge کل چقدر sec 356 = 104 + 130 + 61 + 61

1 + 60

1 + 60

60 + 70

60 + 44

Page 21: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-21

بزرگ فايلهاي سازي مرتب

( جدول 323ص ،8.1 )

Page 22: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-22

بزرگ فايلهاي سازي مرتب :)... ادامه ) مثال

فايل برابر اگر چطور بزرگتر ده ؟ميشودباشد

کوچک Sortبراي رکوردها خواندنزمان 1( فايلهاي است؟ در ثانيه 610 چقدر) چرا؟)

کوچک Sortبراي رکوردها نوشتنزمان 2( فايلهاي است؟ در ثانيه 610چقدر) چرا؟)

است؟ Merge نتايج نوشتنزمان 3( ثانيه 1040چقدر) چرا؟)

کوچک قطعات خواندنزمان 4( است؟ Merge براي فايلهای چقدر

Page 23: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-23

بزرگ فايلهاي سازي مرتب:)... ادامه ) مثال

فايل برابر اگر چطور بزرگتر ده ؟ميشودباشد

کوچک قطعات خواندنزمان 4( است؟ Mergeبراي فايلهاي چقدر

فايل 5( به هر يعني ) قطعه 800کوچک شود مي ( seek يا جستجو 800تقسيم640000=800*800(: seek )جستجو کل تعداد 6(sec 7040= msec11*640000 : جستجوکل زمان 7(( sec 600: انتقالکل زمان 8( چرا؟)قطعات کل مانز 9( از ) Merge : 7640براي خواندن بيش ساعت ثانيه ( دو

قبل ) حالت با زمان اين ؟(يمقايسه

Page 24: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-24

بزرگ فايلهاي سازي مرتبها چه زCمان برای ييروش سازي بهبود بزرگ مرتب فايلهاي

دارد؟ وجود

افزاري چه 1( سخت هاي دارد؟ برای روش وجود سازي مرتب زمان بهبود

بردن RAMحافظه ظرفيتباال

بردن ديسک باال و تعداد فايلها ها مختلف تقسيم هاي ديسک ( .روي چرا؟) (پ آوردن ابراي ( seek timeيين

بردن کانالهاي باال ( I/O Channels) تعداد جاي به هاي مثال باشند Masterهمه Master-Slave ديسک نمودن همزمانوI/O مختلف روي ( I/O overlapping )کانالهاي

Page 25: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-25

بزرگ فايلهاي سازي مرتبها چه زمان برای ييروش سازي بهبود بزرگ مرتب فايلهاي

دارد؟ وجودافCزاري چه 1( نرم هاي سازي روش مرتب زمان دارد؟ بهبود وجوCد

روش از اي استفاده مرحله چند ( Multiple-step Merge )ادغام :تمام مثال اينکه جاي به قبلي فايل� را 800در کوچک کنيم يکجافايل ادغام هم با

به را آنها توانيم کرده تايي 32 دسته 25مي تقسيم در اوّل و ادغ�ام مرحله يک دسته هر دهيم way-32براي� انجام ادغام يک دوم مرحله در سپس دهيم way-25و .انجام

Page 26: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-26

بزرگ فايلهاي سازي مرتبروش از اي استفاده مرحله چند Multiple-step )ادغام

Merge) :مزايا فايلها مرحله تعداد هر کمتردر نتيجه در قطعات و حافظ�ه اندازه شود بزرگتر در مي به کمتري و بود seek تعداد خواهد احتياج نتيج در براي زمان ه و شد کمتر Mergeالزم .خواهد

…… …… …

25 sets of 32 runs each

Two-step merge of 800 runs

32 runs 32 runs

1 2 253

( شکل 330ص ،8.23 )

Page 27: Lecture 12 مرتب ساز ي  و ادغام فايلها  (Sorting and Merging files) (Sections 8.3 - 8.5)

File Structure Dr. M. Rahgozar12-27

بزرگ فايلهاي سازي مرتب

( جدول 331ص ،8.3 )