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

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

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

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

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

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

الگوریتم گاه دارای مراحلی است که تکرار می‌شود (در مثال آبگوشت مثلاً چند بار باید نمک زد یا آب اضافه کرد) و یا در مرحله‌ای نیازمند تصمیم‌گیری است (اگر نمک کافی است دیگر نمک نمی‌زنیم، اگر کافی نیست نمک می‌زنیم).

اگر الگوریتم برای عمل مورد نظر مناسب نباشد و یا غلط باشد به نتیجه مورد نظر نمی‌رسیم.

باید بدانیم برای هر الگوریتم تعریف متغیرها و طراحی مرحله به مرحله بسیار مهم است. زیرا الگوریتم باید بداند بر روی چه متغیر هایی، چه اعمالی را انجام دهد و نتیجه را در غالب چه متغیرها یا پارامترهایی نشان دهد.

تحلیل الگوریتم

معمولاً برای حل یک مسئله، روش‌های گوناگونی وجود دارند؛ یک الگوریتم ممکن است عمل مورد نظر را با دستورات مختلف در مدت زمان و یا کار کمتر یا بیشتری نسبت به الگوریتم دیگرانجام دهد. به همین دلیل، انتخاب الگوریتم مناسب و کارا اهمیت زیادی در موفق بودن و کارایی برنامه کمپیوتری دارد.

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

کارایی یا پیچیدگی هر الگوریتم را با تابعی نشان می‌دهند که تعداد مراحل لازم برای اجرای الگوریتم را برحسب طول دیتای ورودی، یا میزان محل‌های لازم حافظه را بر حسب طول دیتا ورودی نشان می‌دهد.

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

نکاتی که باید هنگام نوشتن الگوریتم در نظر داشته باشید:

  1. مراحل را به ترتیب و پشت سرهم بنویسید (اجرا از بالا به پایین)
  2. قدم‌های ضروری را در نظر گرفته و آن‌ها را در طرح خود به کار ببرید.
  3. از بیان جزئیات بیهوده پرهیز کرده و سعی کنید تا حد امکان مراحل را ساده و در عین حال کامل بنویسید.
  4. از زبانی ساده برای نوشتن الگوریتم استفاده کنید، طوری که افراد مختلف برداشت متفاوتی از آن نداشته باشند.
  5. هر الگوریتم تنها یک نقطه شروع دارد که اولین دستوالعمل از آن شروع میشود، ولی میتواند چندین پایان داشته باشد.
  6. الگوریتم باید جامع باشد، طوری که در حالت‌های خاص نیز نتیجه‌ی مناسب را به شما بدهد.
  7. اولویت عملگرهای ریاضی را هنگام نوشتن طرحتان در نظر داشته باشید (به عنوان مثال محاسبه حاصل ضرب نسبت به محاسبه حاصل جمع در اولویت است).

به عنوان مثال فرض کنید میخواهیم مراحل رفتن به دانشگاه را به صورت مرحله به مرحله بنویسیم !

  1. شروع
  2. بیدار شدن از خواب
  3. شستن دست و صورت
  4. خوردن صبحانه
  5. پوشیدن لباس مناسب
  6. برداشتن وسایل مورد نیاز (کتاب و …)
  7. خروج از خانه
  8. رفتن به دانشگاه
  9. ورود به کلاس
  10. پایان

خصوصیات یک الگوریتم:

ورودی: یک الگوریتم باید هیچ یا چندین پارامتر را به عنوان ورودی بگیرد.

خروجی: الگوریتم حداقل یک خروجی داشته باشد.

قطعیت: دستورات الگوریتم باید با زبانی دقیق، و بی‌ابهام بیان شوند.

محدودیت:  الگوریتم باید پس از طی مراحل محدودی خاتمه یابد.

کارایی: هر دستور باید انجام پذیر باشد، یعنی بتوان آنرا بصورت دستی و با قلم وکاغذ اجرا کرد.

برای ارزیابی کارایی یک الگوریتم، چند مسئله دارای اهمیت است:

  • زمان اجرا
  • حافظه مورد نیاز
  • پروسسر
  • کمپایلر
  • پیچدگی الگوریتم

مراحل پنجگانه در طراحی الگوریتم

هر برنامه را صرفنظر از میزان پیچیدگی آن ، می توان  به  پنج مرحله اساسی تجزیه کرد

  • ورودی
  • دادن قیمت اولیه
  • پردازش

مرحله پردازش ، شامل انجام عملیات  بر روی ورودی ، بمنظور تولید نتایج مورد نظر برای برنامه است.

  • خروجی

مرحله فوق ، پاسخ های مناسب و مورد انتظار را به کاربران مبنی بر حل مسئله مورد نظر ، ارائه می نماید.

  • پاکسازی

مرحله پاکسازی ، بمنظور خاتمه بخشیدن مودبانه یک برنامه، پس از تکمیل عملیات مربوطه است.

روش های ارایه الگوریتم

  1. فلوچارت(Flow chart)
  2. Pseudo code
  3. Actual code
مرتضی فرحتیار

پست‌های مرتبط
دیدگاهتان را بنویسید:
کد امنیتی در تصویر کلیک کنید برای به روز رسانی تصویر امنیتی.