الگوریتم چیست؟
پس از آن که ما متوجه شدیم نرمافزار ما قرار است چه کاری انجام دهد و چه مشکلی از مشکلات کاربران را رفع نماید، حال می بایست گام هایی را تعریف کنیم تا با اجرای آنها یکی پس از دیگری، به سیستم دستور دهیم تا آن مشکل خاص را حل کند. این گام های دقیقی که مشخص میکنند نرمافزار ما چگونه می بایست کار کند را اصطلاحاً الگوریتم می گویند. به عبارت دیگر، الگوریتم راه کارهای حل یک مسأله در برنامه نویسی را میگویند (این واژه از روی نام دانشمند بزرگ ایرانی خوارزمی گرفته شده است.)
در واقع برای داشتن یک الگوریتم خوب، پیش از هر چیز می بایست بدانیم که نرمافزار ما قرار است چه کاری انجام دهد. سپس بایستی به سیستم دستور دهیم که آن کار یا کارها را به چه شکلی انجام دهد که این بخش دشوار کار است. در حقیقت، هرچه کارهایی که ما میخواهیم سیستم برای ما انجام دهد بیشتر و پیچیدهتر باشند، مسلماً تعداد خطهای کد بیشتری باید نوشته و برنامه ی ما هم پیچیدهتر خواهد شد و نیاز به الگوریتم پیچیده تری دارا است.
برای روشن شدن این مسأله مثالی می زنیم. یک الگوریتم ساخت نرمافزار خیلی شبیه به دستور پخت غذا است. برای ساخت ماکارونی، ما خیلی دشواری نخواهیم داشت. ابتدا آب را جوش می آوریم، سپس بسته ی ماکارونی را داخل آن میریزیم و پس از چند دقیقه مایع ماکارونی را روی آن ریخته و غذا را سرو میکنیم اما در عین حال، برای ساخت خورشت قیمه ما کارهای به مراتب بیشتری باید انجام دهیم!