هر برنامه، می بایست دارای یک طرح و یا الگو بوده تا برنامه نویس بر اساس آن عملیات خود را دنبال نماید.از دیدگاه برنامه نویسان ، هر برنامه نیازمند یک الگوریتم است . به عبارت ساده ، الگوریتم ، بیانه ای روشمند بمنظور حل یک مسئله به خصوص است . از منظر برنامه نویسان ،الگوریتم بمنزله یک طرح کلی و یا مجموعه دستورالعمل هائی است که با دنبال نمودن آنان ، برنامه ای تولید می گردد.
الگوریتم های میکرو در مقابل ماکرو
الگوریتم ها دارای ویژگی های متفاوتی می باشند . ما می توانیم در رابطه با الگوریتم استفاده شده به منظور نوشتن یک برنامه مشخص صحبت نماییم . از این زاویه ، ما صرفا” در رابطه با الگوریتم در سطح ماکرو(macro level) ، صحبت نموده ایم . در چنین مواردی ، الگوریتم ارائه شده ، سعی در بدست آوردن جنبه های عمومی برنامه از طریق یک مرور کلی به برنامه در مقابل درگیر شدن در جزئیات را دارد.ما می توانیم در رابطه با الگوریتم ها ، از سطح “میکرو” صحبت نماییم . از این زاویه ، به سطوح پایین تر رفته و به عوامل اساسی و نگهدارنده ای که یک جنبه خاص از برنامه را با یکدیگر مرتبط می نماید، صحبت کرد. مثلا” در صورتی که شما دارای داده هائی هستید که می بایست قبل از استفاده مرتب گردند ،الگوریتم های مرتب سازی متعددی در این زمینه وجود داشته و می توان یکی از آنها را بمنظور تامین اهداف مورد نظر خود انتخاب نمود. انتخاب یک الگوریتم مرتب سازی ، صرفا” باعث حل شدن یکی از جنبه های متفاوت برنامه می گردد . پس از مرتب سازی داده ها ،می بایست از یک الگوریتم میکرو دیگر بمنظور نمایش داده های مرتب شده استفاده گردد .