الگوریتمالگوریتم چیست به زبان ساده و با مثال های فراواندر این مقاله به زبان بسیار ساده و با مثال های متعدد توضیح داده شده که الگوریتم چیست و چه کاربردهایی دارد ها نقش مهمی در برنامه نویسیبرنامه نویسی کامپیوتر چیست و چطور می توانید یک برنامه نویس موفق شوید؟در عصر فعلی برنامهنویسی یکی از پرطرفدارترین شغلهای دنیاست، دغدغهای افرادی که میخواهند در مسیر برنامهنویس شدن قدم بردارند این است که نمیدانند از کجا باید شروع کنند، در این صفحه هر آن چه برای تبدیل شدن به یک برنامه نویس حرفه ای نیاز دارید در اختیارتان قرار گرفته است و حوزههای کامپیوترکامپیوتر چیست؟ ⚡️ کامپیوتر چیست به زبان سادهاین مقاله عالی توضیح داده که کامپیوتر چیست و چه کاربردی دارد و همه چیز درباره کامپیوتر از جمله فواید کامپیوتر و تعریف کامپیوتر و اجزای آن را بیان کرده است ی دارند، همانطور که میدانید به خردکردن یک مسئله بزرگ به مسئلههای کوچکتر و سبکتر و سپس حلکردن آنها الگوریتم گفته میشود. هر الگوریتم از تعدادی ورودی تشکیل شده است و سپس یکسری از دستورالعملها بر روی ورودیها انجام میشود و در نهایت یک یا چند خروجی حاصل میگردد. تاکنون الگوریتم های مختلفی در زمینههای گوناگون بوجود آمده است و هرکدام عملکرد ویژه خود را دارند؛ به عنوان مثال تعدادی از الگوریتم ها برای جستجوکردن ایجاد شدهاند؛ یکسری از آنها برای مسائل بهینهسازی ساخته شدهاند که به آنها الگوریتم های بهینه سازیالگوریتم های بهینه سازی از سیر تا پیازالگوریتم های بهینه سازی چیست؟ این صفحه عالی توضیح داده که الگوریتم های بهینه سازی چگونه کار می کنند و مهمترین الگوریتم های بهینه سازی را معرفی کرده هم گفته میشود و یا در زمینههای دیگر مثل رمزنگاریرمزنگاری چیست؟ بررسی انواع رمزنگاری و ویژگی های رمزنگاریرمزنگاری چیست و چگونه کار میکند؟ این مقاله عالی به معرفی رمز نگاری، انواع رمزنگاری از جمله متقارن و نامتقارن، الگوریتم های رمزنگاری و تاریخچه آن پرداخته است و یادگیری ماشینیادگیری ماشین چیست و چرا مهم است؟ - Machine learning (ML)تعریف یادگیری ماشین : ماشین لرنینگ (Machine Learning یا به اختصار ML) باعث میشود که خود ماشینها با آنالیز داده ها امکان یادگیری و پیشرفت داشته باشند، این مقاله فوق العاده یادگیری ماشین را بصورت کامل بررسی کرده است و...
تعداد الگوریتم هایی که تاکنون ساخته شده و مورد استفاده قرار گرفته است بسیار زیاد است، اما بهعنوان یک برنامه نویس یا یک فعال در حوزه کامپیوتر، نیاز است تا برخی از معروفترینها و پرکاربردترین الگوریتم ها را بشناسید.
معروفترین الگوریتم های برنامه نویسی
ابتدا دستهبندی الگوریتم ها را مشخص میکنیم و سپس برای هر مجموعه، معروفترین و پرکاربردترین الگوریتم ها را معرفی میکنیم.
الگوریتم های جستجو (Searching Algorithms):
الگوریتم های جستجو برای جستجوکردن و پیداکردن یک اِلمان خاص در یک ساختمان دادهآموزش ساختمان داده و الگوریتمهر ساختمان داده یک نوع فرمت ذخیرهسازی و مدیریت دادهها در کامپیوتر است، که امکان دسترسی و اصلاح کارآمد آن دادهها را برای یکسری از الگوریتمها و کاربردها فراهم میکند، در این صفحه به بررسی و آموزش ساختمان داده و الگوریتم پرداخته شده است خاص استفاده میشود. تاکنون تکنیکهای مختلفی برای بهینهکردن فرایند جستجو به وجود آمده است تا بتوان بهوسیله آنها با تعداد مقایسه کمتری، آیتم موردنظر را پیدا کنیم. مهمترین الگوریتم های جستجو عبارتاند از:
- جستجوی خطی (Linear Search): الگوریتم های جستجوی خطی بهصورت تکراری (Iterative) یک لیست یا آرایهآموزش آرایه در ساختمان داده به زبان ساده و از 0 تا 100در این مقاله موارد زیر بررسی شده است : 1- آرایه چیست 2- انواع اندیس گذاری در آرایه 3- انواع آرایه 4- محاسبه آدرس در آرایه 5- محاسبه شماره در آرایه 6- آرایه در برنامه نویسی 7- مزایای استفاده از آرایه را پیمایش میکنند تا به عنصر موردنظر برسند و یا دیتاست مورد جستجو به اتمام برسد.
- جستجوی دودویی (Binary Search): بهصورت کارآمد عنصر موردنظر را در یک لیست مرتب جستجو میکند. نحوه عملکرد الگوریتم جستجوی باینری به این صورت است که هر بار محدوده مورد جستجو را نصف میکند و این عمل را تا پیداشدن عنصر یا اتمام لیست انجام میدهد.
الگوریتم های مرتبسازی (Sorting Algorithms):
الگوریتم های مرتب سازی، المانها یا عنصرهای داخل یک ساختمان داده را به ترتیب خاصی مرتب میکنند؛ بهعنوانمثال ترتیب قرارگیری عنصرها میتواند صعودی یا نزولی باشد. مرتبکردن یک لیست و یا هر ساختمان داده دیگری از اهمیت بسیار بالایی برخوردار است؛ چرا که دسترسی و تغییر عناصر سریعتر و کاراتر خواهد بود. باتوجه به مهمبودن این دسته از الگوریتم ها، تاکنون روشهای بسیار متعددی برای مرتبکردن به وجود آمده است که اکثر آنها معروف هستند و به وفور در طول برنامه نویسی استفاده میشوند. از الگوریتم های مهم مرتب سازی میتوان به موارد زیر اشاره کرد:
- مرتب سازی حبابیآموزش الگوریتم مرتب سازی حبابی (Bubble Sort) از 0 تا 100این صفحه مرتب سازی حبابی (Bubble Sort) را بصورت 0 تا 100 آموزش داده و کدهای مرتب سازی حبابی در C++، پایتون و جاوا آورده شده است شده (Bubble Sort): به صورت تکراری دو عنصر مجاور یکدیگر را با یکدیگر مقایسه میکند و اگر ترتیب قرارگرفتن آنها اشتباه بود، جایگاهشان را با یکدیگر عوض میکند (Swap)
- مرتب سازی درجیآموزش الگوریتم مرتب سازی درجی (Insertion Sort) 0 تا 100در این صفحه مرتب سازی درجی (Insertion Sort) به بهترین روش ممکن آموزش داده شده و روشهای محتلف پیادهسازی الگوریتم مرتب سازی درجی بیان شده است. (Insertion Sort): این الگوریتم تکتک عناصر را از یک آرایه نامرتب گرفته و آنها را در مکان صحیح قرار میدهد.
- مرتبسازی انتخابی (Selection Sort): کوچکترین (بزرگترین) عنصر یک ساختمان داده را پیدا کرده و آن را با اولین (آخرین) عنصر ساختمان داده Swap یا عوض میکند.
- مرتب سازی ادغامیآموزش مرتب سازی ادغامی بصورت 0 تا 100این صفحه مرتب سازی ادغامی را بصورت 0 تا 100 آموزش داده و مثال مرتب سازی ادغامی آورده شده است، همچنین بهترین، متوسط و بدترین حالت مرتب سازی ادغامی بررسی شده (Merge Sort): ابتدا لیست نامرتب را به قسمتهای کوچکتر تقسیم میکند و سپس آن قسمتها را مرتب میکند، بعد از مرتبکردن قسمتهای کوچک، آنها را با یکدیگر ادغام کرده تا لیست کامل حاصل شود.
- مرتب سازی سریعآموزش مرتب سازی سریع بصورت 0 تا 100این صفحه مرتب سازی سریع را بصورت 0 تا 100 آموزش داده و مثال مرتب سازی سریع آورده شده است، همچنین بهترین، متوسط و بدترین حالت مرتب سازی سریع بررسی شده (Quick Sort): در این الگوریتم ابتدا یک عنصر به عنوان محور یا Pivot انتخاب شده و سپس آرایه به قسمتهای کوچکتر از Pivot و قسمتهای بزرگتر از Pivot تقسیم میشود؛ عناصر باتوجه به ترتیبشان به صورت بازگشتی یا Recursive باتوجهبه Pivot مرتبط میشوند.
الگوریتم های بهینهسازی (Optimization Algorithms):
به طور خلاصه هدف از الگوریتم های بهینهسازی، پیداکردن بهترین جواب ممکن در بین جوابهای متعدد یک مسئله است؛ بنابراین الگوریتم های بهینهسازی میخواهند یک مقدار خاصی را ماکزیمم و یا مینیمم کنند. از مهمترین الگوریتم های بهینهسازی میتوان به موارد زیر اشاره کرد:
- الگوریتم های حریصانه (Greedy Algorithms): در هر مرحله از اجرای این الگوریتم، بهترین جواب یا نقطه بهینه یا Optimal محلی انتخاب میشود به امید اینکه به نقطه بهینه سراسری یا Global برسیم. در الگوریتم های هافمن (Huffman) و کراسکالالگوریتم کراسکال یا کروسکال⚡️مثال+پیاده سازی+پیچیدگی زمانیاین صفحه عالی به معرفی الگوریتم کراسکال یا کروسکال (Kruskal) پرداخته و مثالی از الگوریتم کروسکال و پیادهسازی و پچیدگی زمانی الگوریتم کروسکال را بررسی کرده (Kruskal) از این شیوه از الگوریتم استفاده میشود.
- الگوریتم ذوب شبیهسازیشده (Simulated Annealing): ذوب شبیهسازیشده یک تکنیک بهینهسازی احتمالی (Probabilistic) است که با الهام از ذوب کردن در متالورژی برای فرار از بهینه محلی استفاده میشود.
- الگوریتم ژنتیک (Genetic Algorithm): الگوریتم ژنتیکالگوریتم ژنتیک از 0 تا 100، آموزش الگوریتم ژنتیک در متلباین صفحه الگوریتم ژنتیک (Genetic Algorithm) را از 0 تا 100 بررسی کرده، همین طور به پیاده سازی و آموزش الگوریتم ژنتیک در متلب (MATLAB) پرداخته است. که الهام گرفته شده از ژنتیک طبیعی در دنیای واقعی است، به انتخاب طبیعی ژنها، ادغام آنها با یکدیگر و جهشهای آنها میپردازد تا جواب بهینه برای مسائل جستجو را پیدا کند.
- بهینهسازی ازدحام ذرات (Particle Swarm Optimization): الگوریتم PSOالگوریتم pso چیست؟ آموزش روش بهینهسازی ازدحام ذراتاین مقاله عالی به معرفی الگوریتم pso به زبان ساده پرداخته و اجزای و نحوه کار الگوریتم PSO، کاربردهای الگوریتم PSO و پیادهسازی الگوریتم PSO را گفته در واقع رفتار موجودات را در یک گروه برای یافتن راهحلهای بهینه شبیهسازی میکند.
- الگوریتم کلونی مورچهها (Ant Colony Optimization): از جمله الگوریتمهای معروف بهینهسازی، میتوان به الگوریتم کلونی مورچه هاالگوریتم کلونی مورچگان چیست؟ آموزش الگوریتم مورچگانالگوریتم کلونی مورچگان چیست؟ این صفحه عالی به آموزش الگوریتم مورچگان پرداخته و پیادهسازی گام به گام الگوریتم مورچگان و کاربردها و مزایای آن را گفته اشاره کرد. در این الگوریتم با الهام از رفتار مورچهها سعی میکنیم تا جواب بهینه را پیدا کنیم.
الگوریتم های یادگیری ماشین (Machine Learning Algorithms):
الگوریتم های یادگیری ماشین، کامپیوتر را قادر میسازند که در دادههای موجود یک الگوی خاصی را یاد بگیرد تا بتواند تصمیمگیری و یا پیشبینی کند. یادگیری ماشین در واقع زیر مجموعهای از حوزههای هوش مصنوعیهوش مصنوعی (AI) چیست؟ انواع، کاربردها، مزایا و معایبهوش مصنوعی یا Artificial Intelligence یا به اختصار AI، امروزه کاربردهای بسیاری پیدا کرده و به یکی از داغترین حوزههای بشر تبدیل شده است، اما با این وجود بسیاری از افراد با کاربردهای آن آشنایی کامل ندارند، به همین علت در این صفحه کاربردها، مزایا و معایب AI بطور کامل بررسی شده است و تحلیل دادهها محسوب میشود. از الگوریتم های مهم یادگیری ماشین میتوان به موارد زیر اشاره کرد:
- یادگیری تحت نظارت (Supervised Learning): یادگیری تحت نظارت یا یادگیری با نظارت یکی از الگوریتم های یادگیری ماشین است که در آن، الگوریتم از دادههای آموزشی برچسبگذاری شده برای پیشبینی یا تصمیمگیری شروع به یادگیری میکند.
- یادگیری بدون نظارت (Unsupervised Learning): در این روش، الگوریتم ها از دادههای بدون برچسب فرایند یادگیری را انجام میدهند؛ در واقع دادهها هیچ گروهبندی و الگوی مشخصی ندارند و کار دستهبندی و پیداکردن ساختارها و الگوهای مخفی بر عهده خود الگوریتم یادگیری است.
- الگوریتم های تقویتی (Reinforcement Learning): الگوریتم ها، حرکتهای بهینهای را باتوجهبه بازخورد و فیدبکی که از محیط میگیرند اعمال میکنند.
الگوریتم های اجماع در بلاکچین (Blockchain Consensus Algorithm):
باتوجه به محبوبیت بسیار زیاد تکنولوژی بلاکچینبراستی بلاکچین چیست؟ از 0 تا 100 بلاکچین به زبان سادهبراستی بلاکچین چیست؟ افراد زیادی میخواهند با بلاکچین آشنا شوند، اما نمیتوانند در سایتها توضیح ساده ای از بلاکچین بیابند، این مقاله به توضیح بلاچین به زبان ساده پرداخته و غیرمتمرکز بودن آن، الگوریتم های زیادی در 2 دهه اخیر به وجود آمده است که بهوسیله این الگوریتم ها گرهها یا نودها (Node) میتوانند با یکدیگر به توافق یا اجماع برسند. از مهمترین الگوریتم های اجماع بلاک چینی میتوان به موارد زیر اشاره کرد:
- الگوریتم اثبات کار (Proof of Work): در الگوریتم PoW، نودها یا گرهها تحت عنوان ماینرها (Miners) به حل یک پازل پیچیده برای تصدیقکردن تراکنشها و اضافهکردن بلوکها به درون زنجیره بلوکها میپردازند. اولین ارز دیجیتالارز دیجیتال چیست به زبان ساده، معرفی انواع ارز دیجیتالاین مقاله عالی به معرفی ارز دیجیتال به زبان ساده پرداخته، سپس به معرفی ویژگی های و انواع ارز دیجیتال و اینکه قیمت ارزهای دیجیتال چگونه تعیین میشود پرداخته یعنی بیت کوینبیت کوین چیست؟ از 0 تا 100 بیت کوین به زبان سادهبراستی بیت کوین چیه؟ افراد زیادی میخواهند با بیت کوین آشنا شوند، اما نمیتوانند در سایتها توضیح ساده ای از بیت کوین بیابند، این مقاله به توضیح بیت کوین به زبان ساده پرداخته است از این الگوریتم برای اجماع استفاده کرده است؛ به همین دلیل الگوریتم اثبات کار از معروفترین الگوریتم های اجماع در بلاکچین بهحساب میآید.
- الگوریتم اثبات سهام (Proof of Stake): در این الگوریتم که توسط رمزارز اتریوممعرفی ارز دیجیتال اتریوم، اتریوم چیست و چرا به وجود آمد؟این صفحه فوق العاده به معرفی ارز دیجیتال اتریوم (Ethereum) پرداخته و بررسی کرده است که چه لزومی به ایجاد اتریوم (ETH) بوده و چرا اتریوم (ETH) به وجود آمده مورداستفاده قرار گرفته است، نودها تحت عنوان تصدیقکنندهها یا Validatorها بهاضافه کردن بلوک و تصدیق تراکنشها باتوجه به میزان رمز ارزی که به عنوان وثیقه درون شبکه نگهداری میکنند میپردازند.
- الگوریتم اثبات صلاحیت (Proof of Authority): در این الگوریتم، تصدیقکنندهها بر اساس شناسه و شهرتشان احراز هویت میشوند.
- الگوریتم اثبات زمان سپری شده (Proof of Elapsed Time): در این الگوریتم نودها یا گرهها برای انتخابشدن بهعنوان سازندگان بلوک درون زنجیره اصلی به رقابت میپردازند.
الگوریتم های گراف (Graph Algorithms):
از دسته الگوریتم های مهم دیگر حوزه برنامه نویسی میتوان به الگوریتم های گراف اشاره کرد. الگوریتم های گرافگراف چیست، آموزش گراف از 0 تا 100 توسط دانشجو ارشد صنعتی شریفدر این مقاله تمامی مطالب مربوط به گراف از 0 تا 100 تدریس شده است. مواردی همچون : گراف چیست؟ انواع گراف، گراف همبند، مکمل گراف، گراف کامل، گراف جهت دار، گراف بدون جهت، گراف ساده و ... به تحلیل ارتباط بین نودهایی از گراف که با یکدیگر در ارتباط هستند میپردازد؛ بهعنوانمثال، این الگوریتم ها کمک میکنند تا بتوانیم کوتاهترین مسیر را پیدا کنیم و موارد بسیار دیگر. از مهمترین الگوریتم های گراف میتوان به موارد زیر اشاره کرد:
- جستجوی سطح اول (Breadth-First Search): رویکرد الگوریتم BFS الگوریتم جستجوی اول سطح چیست؟ پیمایش سطحی (BFS) چیست؟این صفحه عالی الگوریتم جستجوی اول سطح یا همان پیمایش سطحی (BFS) را آموزش داده و پیاده سازی، پیچیدگی زمانی، مکانی و کاربردهای الگوریتم جستجوی اول سطح را گفته به این صورت است که در ابتدا تمامی رئوس یک سطح (ارتفاع) را جستجو میکند و سپس وارد سطوح بعدی میشود. الگوریتم های سطح اول بیشتر برای یافتن کوتاهترین مسیر و تحلیلهای شبکه کاربرد دارد.
- جستجوی عمق اول (Depth-First Search): رویکرد الگوریتم DFS الگوریتم جستجوی اول عمق ⚡️ آموزش الگوریتم dfs گرافدر این مقاله عالی الگوریتم جستجوی اول عمق بررسی و الگوریتم dfs گراف آموزش داده شده و مثال ها و پیاده سازی و کاربردهای الگوریتم جستجوی اول (DFS) عمق بیان شده به این صورت است که تمامی رئوس مربوط به یک شاخه یا branch را بهصورت backtracking یا عقب رو پیمایش میکند تا به راس آخر یا برگها برسد و همین کار را برای رئوس بعدی انجام میدهد. از این الگوریتم برای مرتبسازی توپولوژی کال، پیداکردن اجزای به هم متصل و... استفاده میشود.
- الگوریتم دایجسترا (Dijkstra Algorithm): برای یافتن کوتاهترین مسیر بین گرهها درون یک گراف وزندار از این الگوریتم استفاده میشود. یکی از الگوریتم های مهم در مسیریابی شبکه، الگوریتم دایجستراالگوریتم دایجسترا (Dijkstra) از 0 تا 100 - الگوریتم دایکسترااین صفحه الگوریتم دایجسترا (Dijkstra) (یا همان الگوریتم دایکسترا) را از 0 تا 100 بررسی کرده، همین طور به پیاده سازی و آموزش الگوریتم دایجسترا پرداخته است. یا دیکسترا است.
- الگوریتم بلمن فورد (Bellman-Ford Algorithm): همانند الگوریتم دایجسترا هدف الگوریتم بلمن فوردگیت (Git) چیست؟ و چگونه از آن استفاده کنیم؟الگوریتم بلمن فورد چیست، این صفحه عالی به آموزش الگوریتم بلمن فورد با مثال پرداخته و نحوه پیاده سازی الگوریتم بلمن فورد و کاربرد و پیچیدگی زمانی آن را گفته نیز یافتن کوتاه ترین مسیر در گراف های وزندار است با این تفاوت که وزنها میتوانند مقدار منفی (Negative) هم داشته باشند.
- الگوریتم پریم (Prim Algorithm): هدف الگوریتم پریمالگوریتم پریم (Prim) چیست ⚡️مثال+پیاده سازی+پیچیدگی زمانیاین صفحه عالی به معرفی الگوریتم پریم (Prim) و مقایسه پریم و کروسکال پرداخته و مثالی از الگوریتم پریم و پیادهسازی و پچیدگی زمانی الگوریتم پریم را بررسی کرده پیداکردن مینیمم درخت پوشا در یک گراف بدون جهت است که بیشتر برای طراحی شبکه و تکنیکهای کلاسترینگ یا خوشهبندی مورداستفاده قرار میگیرد.
- الگوریتم کراسکال (Kruskal Algorithm): برای ساختن حداقل درخت پوشا داخل یک گراف بدون جهت از الگوریتم کراسکال استفاده میشود. این الگوریتم نیز برای طراحی شبکه و کلاسترینگ دادهها استفاده میشود.
الگوریتم های جستجو در رشته (String Searching Algorithms):
الگوریتم های جستجو در رشتهرشته یا String چیست ⚡️ نحوه کار با استرینگ در برنامه نویسیاین مقاله به معرفی رشته (String) یا استرینگ در برنامه نویسی، رشته در پایتون، رشته در C++ و همین طور الگوریتمهای معروف مربوط به رشته ها در برنامه نویسی پرداخته ، با توالیای از کاراکترها یا سمبلها که بهعنوان رشته یا String شناخته میشوند سروکار دارند. بهطورکلی از این الگوریتم ها برای جستجوی یک الگو درون یک رشته، تصدیقکردن یک داده و یا تغییر یا دستکاری یک متن استفاده میشوند. از مهمترین الگوریتم های جستجو در رشته میتوان به موارد زیر اشاره کرد:
- عبارات منظم (Regular Expressions): عبارات منظمعبارت منظم در نظریه زبانها چیستاین صفحه عالی به آموزش عبارت منظم در نظریه زبانها در نظریه زبان ها و ماشین ها پرداخته و عبارت منظم یا Regular Expression در برنامه نویسی را نیز بررسی کرده برای تعیین الگوهای متن که در کارهای جستجو و دستکاری متون است استفاده میشود.
- جستجوی رشته ساده (Naive String Search): یک رویکرد بسیار سادهای است که برای یافتن وقوع یک الگو در متن کاربرد دارد.
- الگوریتم رابین کارپ (Rabin-Karp Algorithm): این الگوریتم از تکنیک درهمسازی یا هشینگ (hashing) برای جستجوی بهینه یک الگو درون یک متن استفاده میکند.
جمع بندی
دنیای الگوریتم، دنیای جذاب و البته چالشبرانگیز دنیای کامپیوتر است. به هر اندازه که مفهوم یک الگوریتم را درک کنید و از آن بهصورت کاربردی استفاده کنید، به همان اندازه دانش شما در حل مسائل بالاتر رفته و برنامه نویسی برای شما راحتتر میشود. تعداد الگوریتم های ساخته شده بسیار زیاد است، از بعضی از آنها تنها در حد نوشتن یک مقاله استفاده شدهاند؛ اما برخی دیگر کاربردهای بسیار گستردهای دارند؛ از استفاده در نرمافزارها گرفته تا ایجاد خطوط هواپیمایی و تولید جنگافزارها و... . در این مقاله به معروف ترین و متداول ترین الگوریتم هایی که در دنیای برنامه نویسی استفاده میشوند پرداختیم و هرکدام را بهصورت مختصر توضیح دادیم.
ازمهمترین دستهبندیهای الگوریتم ها کداماند؟
1- الگوریتم های جستجو (Searching Algorithms) 2-الگوریتم های مرتب سازی (Sorting Algorithms) 3-الگوریتم های بهینه سازی (Optimization Algorithms) 4-الگوریتم های یادگیری ماشین (Machine Learning Algorithms) 5-الگوریتم های اجماع در بلاکچین (Blockchain Consensus Algorithm) 6-الگوریتم های گراف (Graph Algorithms) 7-الگوریتم های جستجو در رشته (String Searching Algorithms)
آیا بهعنوان برنامه نویس حتماً باید با الگوریتم های معروف آشنا باشیم؟
بستگی به حیطه کاریتان دارد. سؤال در مورد الگوریتم و حل مسئله از مهمترین پرسشهایی است که در مصاحبه استخدامی پرسیده میشود؛ همچنین برای توانایی حل مسائل نیاز به دانستن الگوریتم های متفاوت دارید؛ بنابراین پیشنهاد میشود تا در مورد الگوریتم های معروف برنامه نویسی اطلاعات لازم و کافی را داشته باشید.