hw5_2 (1).pdf

‫تمرین سری پنجم‬
‫ساختمان داده‬
‫زمان تحویل‪ 30 :‬خرداد‬
‫مسئله ی ‪.1‬‬
‫الگوریتمی با مرتبه زمانی خطی ارائه نمایید که بتواند محل قرارگیری مربی را در زمینی بزرگ بیابد به طوریکه مجموع فاصلهی آن‬
‫تا ‪ N‬والییالیست کمینه باشد‪ .‬مختصات تصادفی همه والیبالیست ها (‪ )x,y‬جزو مقادیر داده شده در نظر بگیرید‬
‫مسئله ی ‪.2‬‬
‫سومین کوچکترین عنصر بین ‪ N‬عنصر را با چند مقایسه میتوان بدست آورد؟‬
‫مسئله ی‪.3‬‬
‫فرض کنید الگوریتمی برای مرتب سازی سریع طراحی نماییم که 𝑁√‪ 1+2‬عنصر اول آرایه ای ‪ N‬عنصری را انتخاب نموده و سپس‬
‫با یک الگوریتم ساده مثل مرتب سازی درجی این عناصر را همراه با پیدا نمودن میانه‪ ،‬مرتب مینماید سپس میانه را محور قرار داده‬
‫و بقیه الگوریتم مرتب سازی را اجرا نموده ‪.‬‬
‫الف ‪ -‬رابطه ای بازگشتی برای زمان اجرای الگوریتم در بدترین حالت بنویسید‪.‬‬
‫ب – کران باالی مناسبی برای زمان اجرای رابطهی قسمت الف را بیابید با توجه به اینکه میتوان با کشیدن درخت بازگشت و بررسی‬
‫آن به این نتیجه رسید که طوالنی ترین شاخه ی آن از )𝑁√(‪ O‬است‪.‬‬
‫مسئله ی‪.4‬‬
‫در هر قسمت آرایه بدست آمده از مراحل کدام یک از الگوریتمهای ساده مرتب سازی و مرتب سازی سریع میتواند تولید شود‪.‬‬
‫(همراه با دلیل)‬
‫‪2 4 1 7 9 8 12 19 13 27 25 33 44 35 51 85 98 77 64 56‬الف ‪-‬‬
‫‪12 25 51 64 77 8 35 9 1 7 4 33 44 19 2 85 98 13 27 56‬ب ‪-‬‬
‫‪1‬‬
‫‪1 2 4 64 12 8 35 9 51 7 77 33 44 19 25 85 98 13 27 56‬ج ‪-‬‬
‫‪12 25 51 64 77 1 7 8 9 35 4 19 33 44 2 85 98 13 27 56‬د ‪-‬‬
‫مسئله ی‪.5‬‬
‫اگر فرض کنیم عملیات تقسیم بندی در هر سطح از الگوریتم مرتب سازی سریع با نسب ‪ 1 − α‬به ‪ )0< α ≤ 1/2( α‬انجام‬
‫شود‪ .‬حداقل و حداکثر عمق بر گ های درخت بازگشت در این الگوریتم را بر حسب ‪ α‬و ‪ n‬بدست بیاورید‪.‬‬
‫مسئله ی‪.6‬‬
‫توضیح دهید که چرا بدترین زمان اجرا در الگوریتم مرتب سازی سطلی(‪ )bucket‬از ) ‪ 𝑂(𝑛2‬می باشد؟ با تغییری در الگوریتم این‬
‫زمان را بهبود داده و جواب خود را تحلیل کنید‪.‬‬
‫مسئله ی ‪.7‬‬
‫میانه ی آرایه ای با ‪ n‬عنصر را با ‪ x‬نشان می دهیم‪ ،‬حال اگر بخواهیم تعداد ‪ 𝑘 ≤ 𝑛/2‬عنصر از این آرایه را انتخاب کنیم به طوری‬
‫که ‪ x‬میانه این ‪ k‬عنصر شود بهترین الگوریتم ممکن برای این مسئله از چه مرتبه زمانی است؟(زمان اجرا برحسب پارامترهای ‪n,k‬‬
‫می باشد)‬
‫مسئله ی ‪.8‬‬
‫برای مرتب سازی آرایه ‪ n‬عضوی ‪ A‬تنها مجاز به استفاده از رویه ی )‪ SQRTSORT(k‬برای 𝑛√ ‪ 0 ≤ k ≤ 𝑛 −‬هستیم ‪.‬این رویه‬
‫زیر آرایه ]𝑛√ ‪ A[𝑘 + 1, 𝑘 +‬را به صورت درجا مرتب می کند‪ .‬در بدترین حالت با چند بار فراخوانی ‪ SQRTSORT‬می توان ‪A‬‬
‫را مرتب کرد‪(.‬با توضیحات کامل)‬
‫‪2‬‬