HW6.pdf

‫ساختمان دادهها و الگوریتمها‬
‫نیم سال دوم ‪93-92‬‬
‫دانشکده مهندسی کامپیوتر‬
‫مدرس‪ :‬دکتر جمزاد‬
‫تاریخ تحویل‪ 4 :‬خرداد‬
‫تمرین ششم‬
‫سوال ‪ .1‬هرم بیشینه‬
‫یک هرم بیشینه داریم ‪ .‬عنصر کمینه ی آن با چه تعداد مقایسه بدست می آید؟ مرتبه ی زمانی یافتن‬
‫بیستمین عنصر کوچک و ‪ lg n‬امین عنصر کوچک را بدست بیاورید‪.‬‬
‫سوال ‪ .2‬هرم کمینهی چندگانه‬
‫یک ‪ d-ary heap‬مشابه با ‪ binary heap‬است‪ ،‬با این تفاوت که گره های غیر برگ به جای ‪ 2‬فرزند ‪d‬‬
‫فرزند دارند‪.‬‬
‫الف‪ -‬نحوه ی نمایش یک ‪ d-ary heap‬را در یک آرایه توضیح دهید‪ .‬متدهایی برای پیدا کردن پدر و فرزند‬
‫‪ k‬ام هر گره بیان کنید‪.‬‬
‫ب‪ -‬نحوه ی پیاده سازی ‪ Max-Heapify‬را برای ‪ d-aery heap‬توضیح دهید و زمان اجرای آن را تحلیل‬
‫کنید‪.‬‬
‫ج‪ -‬پیاده سازی ‪ Build-Heap‬را برای ساختن یک ‪ d-ary heap‬توضیح دهید و زمان اجرای آن را تحلیل‬
‫کنید‪.‬‬
‫د‪ -‬نحوه ی پیاده سازی ‪ Extract-Max‬در یک ‪ d-ary heap‬را بیان کنید و زمان اجرای آن را بیابید‪.‬‬
‫ه‪ -‬نحوه ی پیاده سازی ‪ Insert‬و ‪ Increase-Key‬را در ‪ d-ary heap‬بیان کنید و زمان اجرای آن ها را‬
‫تحلیل کنید‪.‬‬
‫و‪ -‬با مقایسه ی ‪ binary heap‬و ‪ d-ary heap‬بیان کنید که در چه زمان هایی استفاده از ‪d-ary heap‬‬
‫بهتر است‪.‬‬
‫سوال ‪ .3‬احتمال برخورد‬
‫فرض کنید که میخواهیم ‪ n‬عدد را با استفاده از روش آدرسدهی باز و درهمسازی یکنوا‪ ،‬در جدول به طول‬
‫‪ k‬وارد کنیم و فرض کنید که )‪ p(n,k‬احتمال این باشد برخوردی رخ ندهد‪ .‬ثابت کنید‪:‬‬
‫)‪−𝑛(𝑛−1‬‬
‫𝑘‪2‬‬
‫𝑒 = )𝑘 ‪𝑝(𝑛,‬‬
‫سوال ‪ .4‬روز تولد‬
‫یک کالس باید چند دانشجو داشته باشد تا احتمال اینکه هیچ دو دانشجویی روز تولد یکسان نداشته باشند‪،‬‬
‫از ‪ ۰.۵‬کمتر شود‪ ،‬راه حل را کامل بنویسید‪.‬‬
‫سوال ‪ .۵‬جستجوی ناموفق‬
‫در روش درهمسازی دوگانه‪ ،‬برای رفع مشکل برخوردها‪ ،‬نشان دهید حالتی هست که نیاز است که در آن برای‬
‫جستجوی ناموفق تمام جدول مورد جستجو قرار گیرد‪.‬‬
‫سوال ‪ .6‬مرتب سازی هرم‬
‫یک هرم کمینه با ‪ n‬عنصر داریم‪ .‬روشی برای مرتب سازی عناصر موجود در هرم ارائه دهید‪ .‬مرتبه ی زمانی‬
‫این روش را بیان کنید و ثابت کنید که روشی با مرتبه ی زمانی بهتر وجود ندارد‪.‬‬