با استفاده از Array.BinarySearch در C#، یک برنامه بنویسید که یک آرایهٔ مرتب از اعداد صحیح را گرفته و شاخص یک مقدار جستجو شده را برگرداند یا در صورت نبودن، مکان پیشنهادی برای درج آن را چاپ کند.
3.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:11 0.0
آرایه را قبل از جستجو مرتب کنید (Array.Sort) و سپس از Array.BinarySearch برای یافتن مقدار استفاده کنید؛ اگر مقدار بازگشتی >= 0 است آن شاخص را چاپ کنید، در غیر این صورت با عملگر بیتی ~ (complement) مکان پیشنهادی برای درج را از -result - 1 محاسبه کنید. این روش با پیچیدگی زمانی O(log n) برای مجموعههای بزرگ مناسب است و در حوزههایی مثل برنامهنویسی سیستمها، تحلیل دادهها و محاسبات با کارایی بالا مفید است؛ توجه داشته باشید که برای مقادیر تکراری ممکن است هر یک از اندکسهای برابر را برگرداند و در صورت نیاز میتوان از comparer سفارشی استفاده کرد.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای استفاده صحیح، آرایه را قبل از جستجو با Array.Sort مرتب کنید و مقدار را با Array.BinarySearch بیابید. اگر نتیجه جستجو >= 0 بود، همان اندکس را چاپ کنید؛ در غیر این صورت insertion point برابر با ~result است و میتوانید آن را چاپ کنید. توجه کنید که مقادیر تکراری ممکن است هر اندکس برابر را بازگردانند و برای کنترل دقیقتر میتوانید از یک IComparer سفارشی استفاده یا مقادیر تکراری را قبل از جستجو مدیریت کنید. این روش دارای پیچیدگی زمانی O(log n) است و برای مجموعههای بزرگ مناسب است.
گزارش