رایج ترین الگوریتم های جاوا اسکریپت | به زبان ساده


در این مقاله به یادگیری برخی الگوریتمهای مقدماتی میپردازیم که هر توسعهدهندهای باید بشناسد. الگوریتمها موضوعی رایج در یک مصاحبه شغلی محسوب میشوند. بنابراین باید روی این موضوع تمرکز داشته باشید. داشتن درک خوبی از رایج ترین الگوریتم های جاوا اسکریپت میتواند موجب کسب جایگاه شغلی خوبی برای شما به عنوان یک توسعهدهنده شود.
فاکتوریل
فاکتوریل یکی از الگوریتمهای ابتدایی است. اما گاهی اوقات ممکن است از شما سؤال شود که فاکتوریل یک عدد چطور محاسبه میشود؟ بنابراین باید بدانیم فاکتوریل عدد به چه معنی است. فاکتوریل هر عدد برابر با آن عدد ضرب در فاکتوریل عدد قبل خود است. به این ترتیب همه اعداد به صورت بازگشتی در اعداد قبلی خود تا یک ضرب میشوند.
برای نمونه فاکتوریل عدد 5 به صورت زیر محاسبه میشود:
5! = 5 * 4 * 3 * 2 * 1
پیادهسازی تکراری
پیادهسازی بازگشتی
عدد فیبوناچی
اعداد فیبوناچی در ریاضیات به اعدادی گفته میشوند که از یک دنباله صحیح به نام دنباله فیبوناچی پیروی میکنند. در این دنباله هر عدد، به جز دو عدد اول، حاصل جمع دو عدد قبل از خود در دنباله است:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ....
پیادهسازی تکراری
پیادهسازی بازگشتی
جستجوی خطی
جستجوی خطی یا جستجوی ترتیبی در علوم رایانه به روش یافتن مقدار هدف درون یک لیست گفته میشود.
این روش به صورت ترتیبی هر عنصر لیست را برای یافتن مقدار هدف بررسی میکند تا این که یک مورد مطابقت پیدا شود و یا این که همه عناصر مورد جستجو قرار گیرند.
پیچیدگی زمانی
از آنجا که در بدترین حالت باید به بررسی هر عنصر دقیقاً یک بار بپردازیم، پیچیدگی زمانی این روش برابر با O(n) است.
پیادهسازی
جستجوی دودویی (Binary)
جستجوی دودویی در علوم رایانه به نام جستجوی نیم-بازه یا جستجوی لگاریتمی نیز شناخته میشود. این الگوریتم جستجو موقعیت مقدار هدف را در یک آرایه مرتب مییابد. نکته مهم که باید توجه داشته باشید این است که برای پیادهسازی جستجوی دودویی، آرایه حتماً باید مرتبسازی شده باشد.
پیچیدگی زمانی
از آنجا که ناحیه جستجو در هر بار تکرار بر دو تقسیم میشود، پیچیدگی زمانی این الگوریتم برابر با O(log(n)) است.
پیادهسازی
مرتبسازی حبابی (Bubble Sort)
مرتب سازی حبابی که گاهی اوقات به نام «مرتبسازی غرقی» نیز نامیده میشود، یک الگوریتم ساده مرتبسازی است که در آن به طور مکرر لیست را میپیماییم تا آن را مرتب کنیم. در این پیمایشها هر دو آیتم مجاور با هم مقایسه میشوند و در صورتی که ترتیب نادرستی داشته باشند، یعنی از نظر نزولی یا صعودی درست نباشند، با هم تعویض میشوند. این بررسی تا زمانی که دیگر هیچ تعویضی لازم نباشد و مطمئن شویم که لیست مرتب شده است، ادامه مییابد.
پیچیدگی زمانی
از آنجا که برای مرتبسازی یک لیست با طول n این لیست باید در بدترین حالت به میزان n بار پیمایش شود، پیچیدگی زمانی این الگوریتم برابر با O(n^2) است.
پیادهسازی
مرتبسازی انتخابی (Selection Sort)
مرتبسازی انتخابی یک الگوریتم مرتبسازی است که به طور خاص در مواردی که نیاز به مقایسه درجا باشد، اجرا میشود.
پیچیدگی زمانی
پیچیدگی زمانی این الگوریتم برابر با O(n^2) است.
پیادهسازی
مرتبسازی ادغامی (Insertion Sort)
مرتبسازی ادغامی یک روش مرتبسازی آرایه از طریق تقسیم آرایه به بخشهای مرتب و نامرتب است. سپس آیتم نامرتب مقایسه میشود تا موجه شویم آیا از آیتم قبلی خود بزرگتر است یا نه و اگر نبود آیتم جدید را درج میکنیم. در واقع ما به دنبال آیتمهای مرتب از سمت چپ به راست میگردیم و آنها را به ترتیب در آرایه مرتب درج میکنیم.
پیچیدگی زمانی
پیچیدگی زمانی این الگوریتم مرتبسازی برابر با O(n^2) است.
پیادهسازی
به این ترتیب به انتهای این مقاله با موضوع بررسی الگوریتمهای رایج برنامهنویسی در جاوا اسکریپت میرسیم.
دستت درد نکنه عالی بود