ساختمان داده‌ها

حل تشریحی سوالات ساختمان داده‌ها - کنکور ارشد مهندسی کامپیوتر 1404

سوالات ساختمان داده‌ها

6 سوال
56.

فرض کنید، در این صورت کدام مورد درست است؟

1)

2)

3)

4)

57.

دنباله یک دنباله دوآهنگی (Bitonic) است، بدین معنی که هرگاه عناصر دنباله را به ترتیب دور یک دایره بنشانیم، یک عنصر یافت می شود که دنباله عناصر بعدی ابتدا صعودی و سپس نزولی هستند. بهترین زمان برای مرتب سازی یک دنباله دوآهنگی، کدام مورد است؟

1)

2)

3)

4)

58.

فرض کنید می خواهیم تمام زیر دنباله های یک دنباله داده شده را با استفاده از روش عقب گرد بررسی کنیم. اگر طول دنباله n باشد، پیچیدگی زمانی این روش چیست؟

1)

2)

3)

4)

59.

فرض کنید مسئله ای به نام انتخاب پروژه های با بیشترین سود (Maximum Profit Project Selection) داریم. در این مسئله، تعدادی پروژه وجود دارد که در آن پروژه i دارای سود و مدت زمان است. تنها تعداد مشخصی از پروژه ها را می توان به طور هم زمان انجام داد و کل مدت زمان انجام پروژه ها نباید از T بیشتر شود. هدف این است که بیشترین سود ممکن را از بین پروژه های انتخاب شده به دست آوریم. می خواهیم از الگوریتم شاخه و حد (Branch and Bound) برای حل این مسئله استفاده کنیم. کدام یک از روش های زیر، مناسب ترین روش برای تعیین حدبالا (Upper Bound) در هر گره است تا به سرعت شاخه های غیرممکن یا کم بازده حذف شوند؟

1)

استفاده از میانگین سود پروژه های باقی مانده و افزودن آن به سود فعلی در گره فعلی به عنوان حد بالا

2)

استفاده از بیشترین سود در پروژه های باقی مانده و افزودن آن به سود فعلی در گره فعلی به عنوان حد بالا

3)

استفاده از مجموع سود تمامی پروژه های باقی مانده و افزودن آن به سود فعلی در گره فعلی به عنوان حد بالا

4)

انتخاب پروژه ها به صورت حریصانه، براساس بیشترین نسبت سود به مدت زمان و افزودن آنها تا زمانی که زمان کل از T فراتر نرود و سپس در نظر گرفتن نتیجه به عنوان حد بالا

60.

در الگوریتم مرتب سازی Insertion Sort، اگر برای جستجوی مکان مناسب عنصر جاری به جای جستجوی خطی از جستجوی دودویی استفاده کنیم، کدام مورد زیر در خصوص پیچیدگی زمانی آن در بدترین حالت درست است؟

1)

به O(nlogn) کاهش می یابد.

2)

همچنان بافی می ماند.

3)

به O(logn) کاهش می یابد.

4)

به O(n) کاهش می یابد.

61.

فرض کنید می خواهید از میان دنباله ای از اعداد صحیح غیرمنفی تعدادی را انتخاب کنید به گونه ای که به بیشترین مجموع دست یابید، با این شرایط که نمی توانید دو عنصر متوالی را انتخاب کنید. به عبارت دیگر، هر عددی که انتخاب می شود، عدد بعد از آن در دنباله نمی تواند انتخاب شود. کدام مورد، مناسب ترین روش با کمترین پیچیدگی زمانی برای حل این مسئله است؟

1)

استفاده از الگوریتم بازگشتی به همراه حافظه گذاری (Memoriztion) برای ذخیره نتایج زیر مسئله ها و جلوگیری از محاسبه مجدد آنها

2)

استفاده از الگوریتم پویا (Dynamic Programming) که به صورت تکراری مقدار بهینه را از سمت چپ به راست محاسبه می کند.

3)

استفاده از الگوریتم تقسیم و حل (Divide and Conquer)، برای تقسیم مسئله به زیر مسئله های کوچکتر

4)

استفاده از الگوریتم جستجوی کامل (Brute Force) که تمام ترکیب های ممکن را بررسی می کند.