genix
پیوند
برای نمایش کلیک کنید
برای نمایش کلیک کنید
الگوریتم انتخاب چیست؟ 👽
در علوم کامپیوتر، الگوریتم انتخاب یک الگوریتم برای پیدا کردن کوچکترین (یا بزرگترین) مقدار kth در مجموعه ای از داده های سازمان نیافته هست. این داده ها میتونن لیستی از اعداد، کاراکترها یا حتی اشیا باشن و مقداری رو که پیدا میکنه، kامین مرتبه آمار نامیده میشه. الگوریتم های انتخاب شامل یافتن عنصر حداقل، میانه و حداکثر در مجموعه به عنوان موارد خاص هست. یک الگوریتم انتخاب به طور موثر k امین کوچکترین (یا بزرگترین) عنصر رو از مجموعه ای از داده های نامرتب بازیابی میکنه. این به ویژه برای یافتن مقادیر خاصی مانند حداقل، حداکثر یا میانه مفید هست.
این الگوریتم چطور کار میکنه؟ 🦠
الگوریتمهای انتخاب بهطور مؤثر kامین کوچکترین (یا بزرگترین) عنصر رو در مجموعهای از دادههای نامرتب پیدا میکنه. برخلاف الگوریتمهای مرتبسازی که کل مجموعه رو مرتب میکنه، الگوریتمهای انتخاب بر یافتن یک عنصر خاص تمرکز میکنه. به عنوان مثال لیستی رو در نظر بگیرید که میخوایم با استفاده از الگوریتم انتخاب کوچیکترین(بزرگترین) مقدارش رو پیدا کنیم. این الگوریتم به این صورت کار میکنه:
1. Initialization: با انتخاب یک عنصر اولیه از داده ها شروع می کنیم. این عنصر میتونه هر عنصری در مجموعه باشه.
2. حلقه مقایسه: حلقه ای رو وارد می کنیم که از طریق داده های باقی مانده تکرار میشه. در هر تکرار، عنصر فعلی رو با عنصر اولیه (یا نامزد فعلی برای kامین کوچکترین/بزرگترین) مقایسه میکنه.
3. به روزرسانی کاندید: * اگه عنصر فعلی کوچکتر (برای کوچکترین) یا بزرگتر (برای بزرگترین) از عنصر کاندید باشه، نامزد رو به روز می کنیم. به این معنا که عنصر فعلی کاندیدای بهتری برای kامین کوچکترین/بزرگترین موقعیت میشه.
* اگه عنصر فعلی برابر با نامزد باشه، رفتار خاص به الگوریتم انتخاب بستگی داره. برخی از الگوریتمها ممکن هست با اونها به طور مساوی رفتار کنن، در حالی که برخی دیگر ممکن است مکانیزمی برای قطع رابطه داشته باشن.
4. تکرار: مراحل 2 و 3 تکرار میشه تا زمانی که تمام عناصر مجموعه با نامزد مقایسه بشن.
5. نتیجه: پس از بررسی همه عناصر، عنصر نامزد نهایی به kامین کوچکترین (یا بزرگترین) مقدار در مجموعه تبدیل میشه.
برای درک بهتر، این گیف به بهترین شکل نحوه کار کرد رو نشون میده.
به صورت کلی الگوریتم های انتخاب یک رویکرد هدفمند برای استخراج عناصر خاص از داده های مرتب نشده ارائه میدن. قدرت اونها در بازیابی kامین کوچکترین/بزرگترین عنصر بدون مرتب سازی کل مجموعه نهفته هست. این باعث میشه اون ها رو برای کارهایی مثل یافتن مقادیر حداقل، حداکثر یا میانه در مجموعه داده های مرتب نشده کارآمد باشن.
برای کسب اطلاعات بیشتر مقالات زیر رو بخونید 👇🏻
- Article
- Article
- Article
نحوه پیاده سازی این الگوریتم در js
#algorithm
@CodeModule
19 · 1.8K ·