الگوریتم

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire


الگوریتم (به انگلیسی: Algorithm)، مجموعه‌ای متناهی از دستورالعمل‌هاست که به صورت دقیق و بدون ابهام بیان شده‌اند. اگر این دستورالعمل ها به ترتیب خاصی اجرا شوند، می توانند مسئله ای را حل کنند. به عبارت دیگر، الگوریتم روشی گام به گام است که برای حل مسئله به کار می‌رود.

فهرست مندرجات

منشاء واژهٔ الگوریتم

واژهٔ الگوریتم از نام محمد ابن موسی خوارزمی گرفته شده است.[۱] کتاب معروف الجبر و المقابله خوارزمی که حاوی دستورالعمل‌های مختلف برای حل مسائل محاسباتی است، از راه ترجمه به زبان اسپانیایی در اروپا شناخته شد و نام عربی او، الخوارزمی، (از طریق آوانگاری آن در زبان اسپانیایی و سپس ورود آن به دیگر زبان‌های اروپایی) مترادف شد با «دستورهای حل مسائل».

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

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

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

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

اگر الگوریتم برای عمل مورد نظر مناسب نباشد و یا غلط باشد به نتیجه مورد نظر نمی‌رسیم. مثلاً اگر الگوریتم آبگوشت را با مواد اولیه کباب انجام دهیم واضح است که به آبگوشت نمی‌رسیم.

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

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

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

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

جنبه حقوقی

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

پانویس

  1. Knuth, 1.1. Algorithms.

منابع

  • Knuth, Donald. The Art of Computer Programming (Volume 1 / Fundamental Algorithms), 2nd Printing. USA: Addison-Wesley Publishing, 1969.


جستارهای وابسته

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net