الگوریتم چیست؟

الگوریتم‌ها نقشی مهم و اساسی در برنامه‌نویسی دارند، برای این‌که یکی از بخش‌های مهم و اساسی حل انواع مسائل هستند. در این فصل کمی با الگوریتم‌ها آشنا می‌شویم.

نکتۀ مهمی که باید در نظر داشته باشیم این‌که معمولاً برای یک نوع کار خاص چندین الگوریتم وجود دارد. آشنا شدن با الگوریتم‌های بیشتر و متنوع‌تر باعث می‌شود، مسائل را بهتر حل کنیم، خلاق‌تر شویم، کدهایی با کارایی بهتر تولید کنیم، و مزایای دیگر.

تعریف الگوریتم

الگوریتم به‌معنی ترتیب انجام یک‌سری از کارهاست که به‌صورت قدم‌به‌قدم تعریف می‌شوند. به‌عبارت‌دیگر، مجموعه‌ای از دستورالعمل‌هایی برای کامپیوتر است تا یک مسئله را حل کنند مانند دستورالعمل آشپزی که برای درست کردن یک غذا تعریف می‌شود.

الگوریتم‌ها معمولاً داده‌های ورودی دارند و نتایج را خروجی می‌دهند. معمولاً اگر ترتیب کارها جا‌به‌جا شوند، نتیجۀ متفاوتی حاصل می‌شود یا ممکن است اصلاً درست کار نکنند. برای مثال الگوریتم زیر را در نظر بگیرید که برای آماده شدن برای رفتن به مدرسه یا محل کار است. البته این یک الگوریتم ساده است و متناسب با سبک زندگی هر شخص ممکن است کمی متفاوت باشد:

نام الگوریتم: روال آماده شدن برای رفتن به مدرسه / محل کار
ورودی: وضعیت فعلی
خروجی: آماده بودن برای رفتن به مدرسه / محل کار
1. اگر هنوز خواب هستید، بیدار شوید.
2. دست‌ها و صورت را با آب و صابون بشویید.
3. با دستمال یا حوله، صورت و دست‌ها را خشک کنید.
4. یک لباس مناسب انتخاب کنید.
5. لباس‌ها را بپوشید.
6. یک صبحانه سالم بخورید.
7. وسایل مورد نیاز برای مدرسه / کار را آماده کنید.
8. از خانه خارج شده و به مدرسه / محل کار بروید.

این یک الگوریتم است. در این الگوریتم می‌توانیم ابتدا صبحانه بخوریم و بعد لباس بپوشیم که مشکلی در اجرای الگوریتم و نتیجه به وجود نمی‌آید. یا می‌توانیم ابتدا صبحانه بخوریم و بعد دست و صورت خود را بشوییم که این کار به‌دلیل بهداشت و نظافت شخصی توصیه نمی‌شود. اما نمی‌توانیم اول صبحانه بخوریم و بعد از خواب بیدار شویم (از نظر منطقی درست نیست).

  1. الگوریتم روال آماده شدن برای رفتن به مهمانی را بنویسید. (متناسب با سبک زندگی خودتان)

  2. چند الگوریتم دیگر از فعالیت روزانۀ خود را بنویسید. (متناسب با سبک زندگی خودتان)

  3. یک الگوریتم بنویسید که زوج یا فرد بودن یک عدد صحیح مثبت را مشخص کند (راهنمایی: عددی زوج است که باقیماندۀ آن بر 2 صفر باشد و عددی فرد است که باقیماندۀ آن بر 2 برابر با یک باشد)

نحوه انتخاب بهترین الگوریتم

الگوریتم‌ها در برنامه‌نویسی نقشی بسیار مهم دارند. به‌طور معمول، برای هر کار خاص تعدادی الگوریتم مختلف وجود دارد که براساس شرایط، نیازها، و ساختار کد باید الگوریتم مناسب انتخاب شود.

بهترین الگوریتم وجود ندارد، همیشه دنبال مناسب‌ترین الگوریتم باشید

هر الگوریتم دارای نقاط قوت و ضعف خاص خود است. از مهم‌ترین مهارت‌های یک برنامه‌نویس انتخاب الگوریتم مناسب برای هر کار مشخص است که این مهارت طی زمان و با کسب تجربه به‌دست می‌آید. پس همیشه به‌دنبال مناسب‌ترین الگوریتم باشید.