یک آرایه از اعداد صحیح بگیرید، آن را به صورت صعودی مرتب کنید و سپس با استفاده از جستجوی دودویی موقعیت یک مقدار ورودی را برگردانید (در صورت نبودن مقدار -1 بازگردانید).
3.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 03:01 0.0
برای حل این مسئله در جاوااسکریپت ابتدا از متد Array.prototype.sort با تابع مقایسه (a, b) => a - b برای مرتبسازی عددی استفاده کنید، سپس یک پیادهسازی ساده از جستجوی دودویی (iterative یا recursive) بنویسید که روی آرایه مرتبشده اندیس عنصر را برمیگرداند یا -1 را در صورت عدم وجود. نکات مهم: قبل از مرتبسازی مطمئن شوید که مقادیر به عدد تبدیل شدهاند، برای زمان اجرا پیچیدگی کلی O(n log n) است و در استفاده از sort حتما تابع مقایسه را وارد کنید تا ترتیب عددی درست شود؛ در صورت وجود مقادیر تکراری، هر اندیس معتبر قابل قبول است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای اطمینان از مرتبسازی عددی، مقادیر آرایه را به عدد تبدیل کنید (مثلاً با Number یا +)، و از sort((a,b)=>a-b) استفاده کنید تا ترتیب عددی درست شود. پس از آن، پیادهسازی جستجوی دودویی را روی آرایه مرتبشده انجام دهید تا اندیس مقدار ورودی را برگرداند یا -1 بدهد. میتواند هم به صورت بازگشتی یا تکراری انجام شود و زمان اجرای کل به صورت تقریبی O(n log n) برای مرتبسازی و O(log n) برای جستجو است. در وجود مقادیر تکراری، هر اندیس معتبر قابل قبول است.
گزارش