صفحه 1:
مرتب سازي سریع حلص ساختمان داده ها و الگوریتمها

صفحه 2:
سورد در سلل49 پیشنهاد کردم لست © از روش تقسيم و حل ‎US (gs call (Divide & Oveaquer)‏ © آرايه را به صورت “در جا” (ج2-|<) 10)مرتب مي كند - شبيه مرتب سازي درجي (م58) +طاءوص21) است. - برخلاف (:م8) جب-ج() ) به حافظه اضافي نياز ندارد. © بياده سازي هاي سريعي كه براي آن ارائه شدهء باعث بكاركيري وسيع آن در عمل شده است.

صفحه 3:
2.0 تقسيم:يك عضو مثل از آرايه را انتخاب كرده و آرایه را طوري به دو بخش طوري تقسيم مي كنيم كه يك بخش آن از : كوجكتر و بخش ديكر از « بزرگتر باشند. حل: به صورت بازگشتي هر کدام از این دو بخش را مرتب مي کنیم ترکیب: كارخاصي لازم نیست! : هزینه عمل تقسیم خطي است ‎O(a)‏

صفحه 4:
[د . ‎lp.‏ //(و ,م ,8)) 1ك« كجوووم ‎x—Olp] // puot= lp]‏

صفحه 5:

صفحه 6:

صفحه 7:

صفحه 8:

صفحه 9:

صفحه 10:

صفحه 11:

صفحه 12:

صفحه 13:

صفحه 14:
8 6 7 | ۰ || 13 |10 1 6 ۱۰۱۲۶ ۶ 613 5 | 3 ۱10 | 8 6 8 8 5 10 13 10 |13 6

صفحه 15:
شبه کد الگوریتم مرتب سازي QOICKEORTN(®, p, r) P op<r tea g—PORMMOV(, p, vr) QO1ICKGORN(, p, A) QO1ICKOORTO, v4, r) ‎vA QODICKGORT(®, 4, «)‏ مساك

صفحه 16:
© فرض كنيد تمام اعضاي آرایه غیر تكراري هستند. * در عمل معمولا روشهاي مناسبتري براي تقسیم آرایه هايي که اعضاي تكراري دارند. استفاده مي شود ‎٩‏ فرض کنید ()۳" هزینه مرتب سازي آرایه اي به طول ب با استفاده ازاين الگوریتم در بدترین حالت باشد. ‏# معمولا بهترین حالت الگوریتمها را در نظر نمي كيريم اما براي مرتب سازي سریع این حالت را نیز بررسي مي کنیم.

صفحه 17:
‎٩‏ آرایه از قبل مرتب شده باشد. © تقسیم حول مقدار مینیمم یا ماکزیمم صورت گیرد. © يكي از دو بخش بدست آمده از تقسیم» هیچ عضوي نداشته باشد. ‎Ma) = PO) + P(r) + O(a)‏ © ‎O() + Nu -C) + O(s)‏ = 0+... +0 + ه > ‎P(r) + O(a)‏ = ‎O(a?)‏ =

صفحه 18:
1( > 1)0( + /1)7-1( + 7

صفحه 19:
1( > 1)0( + /1)7-1( + 7 1

صفحه 20:
1( > 1)0( + /1)7-1( + 7 ca ‏سر‎ ‎™) Trl)

صفحه 21:

صفحه 22:
1( > 1)0( + /1)7-1( + 7 cn ‏کم‎ ‎710( e(n-l) ‏م‎ + 10) c(n-2) “oN 10) 0)۱(

صفحه 23:
Mn) = 10) + Un-1) + en ‎ofS =@(n?)‏ نی 1 10 )10

صفحه 24:

صفحه 25:
# در بهترین حالت» دو بخش تقسیم شده تقریبا هم اندازه هستند و اندازه مساله در هر بار تقسیم نصف مي شود: (سسسی) ( ما6 3 )6 + (9/6 - ۱ ‎٩‏ سوال: اگر تقسیم طوري صورت بگیرد که 96000 اعضاي آرایه در يك بخش و 00096 در بخش دیگر قرار بگیرند» هزینه الگوریم چگونه خواهد بود ؟ ‎D(a) = VID) + NOWdID)+ O(a) &

صفحه 26:
90% 06

صفحه 27:
90% 06

صفحه 28:
90% 06

صفحه 29:
90% 06

صفحه 30:
90% 06 : ۱ bi ۱ )0 وم 07100 > (] > 07208

صفحه 31:
90% 06 07208 > ]( >20071080

صفحه 32:
90% : \ 0)1( T(n) =0(nlod,) =O(nlog) =O(nlgn)

صفحه 33:
قرض کنید. به صورت متوالي در هربار تقسیم. آرایه بطور متوازن نامتوازن تقسیم شود. حالت متوازن را ,ولس,ا و حالت نا متوازن | رواسای مي نامیم و هزینه الگوریتم را محاسبه مي کنیم جد بواسما 3 (9)0 + (60)06 - رز ۰ ‎(a) =L(«-() + O(a) > Ockohy sep‏ ۰ ‎O(e/2)) + O(a)‏ + رمولم‌راه ع ور ه ‎L(a) = QL(al2 -0) + O(a) > L(m) = Ofelogs)‏ ®

صفحه 34:
© عمل نقسیم نقش اصلي را در تعبین هزینه الگوریتم دارد - چگونه تقسیم متوازني انجام دهیم؟ - یا چگونه مي توانیم امیدوار باشیم اغلب نقسیم ها متوازن هستند؟ 9 انتخاب تصادفي عضو نشانگر سردم - زمان اجرا مستقل از مقادیر و توزیع ورودیهاست - هیچ ورودي خاصي سبب شکل گيري بدترین حالت الگوریتم نمي شود - احتمال وقوع بدترین حالت تنها به مولد اعداد (شبه) تصادفي بستگي دارد

صفحه 35:
شبه کد الگوریتم تقسیم تصادفي RODOOO-PORM MOO, p, a)/l ‎puo= lp]‏ // م0 ‎imp‏ ‎Poricpt )) 25‏ ‎eo Fl] Sx‏ ‎feat (1‏ ‎ounp Of] Of]‏ ‎swe Op] Ol] // Prod place oF prt!‏ موب

صفحه 36:
آنالیز مرتب سازي با تقسیم تصادفي © با انتخاب تصادفي نشانگر؛ آرایه اي به طول » ممکن است به صورت (0:) : (صمرا): ..: (9/: ولم) تقسیم شود. © فرض كنيد الكوريتم تقسيم دو بخش سجن را تولید مي کند که در آن ,00,0 است. * متغیر تصادفي ۱ را چنین تعریف مي کنیم: - 22 لگر طول‌دوبخش:| بساشد؛ در غیر لینصورت 20 2۷ - مارا متغیر تتصادفی‌نشانگر (عاطادسه() ط»0() له )ميك ويند. - 01 > (2 0 - [606

صفحه 37:
آنالیز مرتب سازي با تقسیم تصادفي ۵(+ ‏رم‎ + O(a) 0+ ‏+رمم‎ O(a) ‏مه‎ ‎Ma)= Dol) + PO) + O(a) we: 1 Ti) = 3) X(T) + Th ‏عل‎ 1(+06)۸( k=O * هزینه: برابريا اميد رياضي تابع تضادفي (م)۳* است: هزینه < [()۳

صفحه 38:
آنالیز مرتب سازي با تقسیم تصادفي nl eal ‎X(T) +Tur k- 1)+0()] &‏ و27 ‎AX (T+ Tur ke +010) =‏ ,)= ‎Xk » T(h) ‏6 1+۵0 +718 و ‏[() م ‎ke De‏ وس ار ‏سس ‎“a‏ 5 اه 00 2

صفحه 39:
آنالیز مرتب سازي با تقسیم تصادفي 1 E(T(n)) =2/n¥ 8)1)19(+ ©) ‏معز‎ (66) مزه - (6)0)00 ج لد ماس وعبا ‎P‏ ‎O(a)‏ 1 AT) =2/ ny, AT(A))+ O(n) k-2

صفحه 40:
تقسیم تصا آنالیز مرتب سازي با تق لفي mi Mogk<=1 ‏م2‎ ogk< ‏جح‎ rf logn- ait ‎Bsa.‏ باشد. مي زنیم» هزینه الگوریتم از مرتبه ب بسا ب 2 عه ؛ 0 ‎ley‏ ۰ اي اثبات اين حدس بايا ام 5 1 توان یافت بنحوي كه: — وبا وه > (()))

صفحه 41:
آنالیز مرتب سازي با تقسیم تصادفي m1 A T()) =; klogk+ O(n) k=2 AT) <="2 jit logn- at + 0 )0 ۲۲710(( > < 710 07- 7 09

صفحه 42:
آنالیز مرتب سازي با تقسیم تصادفي oa - ‏اه‎ ۲۳]17](( ><621097- E(T(a)) > ‏وا موم و‎ ud > O(a) ‏يسء با انتخاب مناسب > مي توان كران بالايي از‎ ‏کرد.‎ lan a fog ‏مرتبه ب‎ &(M(a)) = O(a oa a)

صفحه 43:
© الكوريتم ‎quicker‏ تصادفي, از نظر هزینه با مومس هم رتبه است. چون نيازي به حافظه اضافی ندارد» مسعمولا انتقلب اول براي مرقب ستازي :اسك 9 در عمل اين الگوریتم بین ۵ تا 6 برابر سریعتر از سس اجرا مي شود.

صفحه 44:
‎٩‏ در پروژه ۰ مقایسه الگوریتم هاي مرتب سازي اسب معمولي و تصادفي را نیز پیاده سازي کرده. با بقیه مقایسه کنید. ‏* مسایل 07 تا 6-6 را حل و ارسال کنید

جهت مطالعه ادامه متن، فایل را دریافت نمایید.
34,000 تومان