به نام خدا طراحی و تحلیل الگوریتمها استاد :دکتر بیگی دانشگاه صنعتی شریف دانشکده مهندسی کامپیوتر تمرین برنامهنویسی ۱ مسئلهی نزدیکترین جفت تاریخ اعالم۱۳۸۵/۲/۱۷ : موعد تحویل۱۳۸۵/۳/۲ : ۱ میخواهیم از بین nنقطه داده شده نزدیکترین جفت به هم را بیابیم. در فضای دوبعدی این مسئله یک الگوریتم بدیهی از ) O(n2دارد؛ اما در اینجا هدف این است که یک الگوریتم بهینه با استفاده از تقسیم و حل از ) O(n log nرا ارائه و پیادهسازی نمایید. توجه :برای سادگی بیشتر فرض میشود که مختصات نقاط عدد صحیح و مثبت هستند و همچنین نزدیکترین جفت ال در شکل باال دو نقطه pو qدارای کمترین فاصله از یکدیگر میباشند و هیچ دو نقطه دیگری دارای این یکتاست .مث ً مقدار فاصله از یکدیگر نمیباشند. نمره اضافی :در این قسمت باید مسئله را در حالت کلی -dبعدی ) (d ≥ 1در ) O(n(log n)d-1حل کنید و برنامه آن را بنویسید .واضح است که در قسمت قبل d = 2میباشد) .توجه :فرمول ) O(n(log n)d-1در مورد d = 1صادق نیست و برای حالت d = 1هم مسئله از ) O(n log nاست(. Closest Pair ۱ مالحظات :برای نوشتن برنامهها میتوانید از C/C++و یا Javaاستفاده کنید و کد شما باید قابل کامپایل در کامپایلر استاندارد مربوطه باشد .نام فایل اصلی باید ClosestPair.cیا ClosestPair.cppیا ClosestPair.javaباشد. مجموعه فایلهای خود را در قالب یک zipفایل که نام آن به فرم proj1-81234567میباشد به ce354b@gmail.comتا موعد تحویل ارسال کنید و عنوان e-mailارسالی را هم به فرم نام zipفایل قرار دهید و از فرستادن فایلهای .exeو .batخودداری کنید. تذکر مهم :در مورد برنامههای مشابه نمرهی آن بین افراد دخیل تقسیم میشود. جزئیات ورودی و خروجی ورودی و خروجی از طریق فایل میباشد که در ادامه به توضیح آن میپردازیم. • ورودی فایل ورودی ClosestPair.inمیباشد .در خط اول آن دو عدد تعداد نقاط و تعداد ابعاد قرار دارد و در خطوط بعد مختصات نقاط به ازای ابعاد مختلف آمده است. • خروجی فایل خروجی ClosestPair.outاست و حاوی دو عدد ،به ترتیب صعودی که بیانگر شماره نزدیکترین نقاط به هم هستند ،میباشد. • مثال ClosestPair.out ClosestPair.in 3 4 4 2 1 1 2 7 4 3 6 2
© Copyright 2025 Paperzz