با استفاده از Array.BinarySearch در C#، یک برنامه بنویسید که یک آرایهٔ مرتب از اعداد صحیح را گرفته و شاخص یک مقدار جستجو شده را برگرداند یا در صورت نبودن، مکان پیشنهادی برای درج آن را چاپ کند.

3.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:11

0.0

آرایه را قبل از جستجو مرتب کنید (Array.Sort) و سپس از Array.BinarySearch برای یافتن مقدار استفاده کنید؛ اگر مقدار بازگشتی >= 0 است آن شاخص را چاپ کنید، در غیر این صورت با عملگر بیتی ~ (complement) مکان پیشنهادی برای درج را از -result - 1 محاسبه کنید. این روش با پیچیدگی زمانی O(log n) برای مجموعه‌های بزرگ مناسب است و در حوزه‌هایی مثل برنامه‌نویسی سیستم‌ها، تحلیل داده‌ها و محاسبات با کارایی بالا مفید است؛ توجه داشته باشید که برای مقادیر تکراری ممکن است هر یک از اندکس‌های برابر را برگرداند و در صورت نیاز می‌توان از comparer سفارشی استفاده کرد.

توسط پژوهشگر در 221 روز قبل ساعت 01:11
دسته بندی ها: C# C# for beginner
reyhaneh در 221 روز قبل ساعت 14:14

برای استفاده صحیح، آرایه را قبل از جستجو با Array.Sort مرتب کنید و مقدار را با Array.BinarySearch بیابید. اگر نتیجه جستجو >= 0 بود، همان اندکس را چاپ کنید؛ در غیر این صورت insertion point برابر با ~result است و می‌توانید آن را چاپ کنید. توجه کنید که مقادیر تکراری ممکن است هر اندکس برابر را بازگردانند و برای کنترل دقیق‌تر می‌توانید از یک IComparer سفارشی استفاده یا مقادیر تکراری را قبل از جستجو مدیریت کنید. این روش دارای پیچیدگی زمانی O(log n) است و برای مجموعه‌های بزرگ مناسب است.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری