الگوریتم به روش خاص حل هر دسته از مسائل گفته می شود. بیان ترتیب کارهایی که باید انحام دهیم با تعیین نظم و ترتیب دستورات و توجه به اولویت اجرای دستورات را الگوریتم گوییم. الگوریتم باید به صورت رشته ای از اعمال که حل دسته ای از مسائل را به دقت تبیین می کند، سازماندهی شده باشد.
برای بیان الگوریتم می توان از روش قابل درکی استفاده کرد. بهطور مثال کارهایی را که باید انجام شود به زبان طبیعی، زبانی مشابه زبان های کامپیوتری و حتی به صورت نمودارهای خاصی بیان نمود. برای همگانی بودن آن می توان از روش ها یا زبان هایی استفاده کرد که برای اغلب افراد شناخته شده باشد. یکی از این روش ها استفاده از شبه کد است که مشابه دستورات برنامه نویسی است ولی رعایت قواعد زبان برنامه نویسی خاصی در آن الزامی نیست. باید توجه داشت که الگوریتم در شرایط فعلی مستقیماً به وسیله کامپیوتر قابل اجرا و تفسیر نیست، اما پس از تبدیل آن به یک زبان برنامه نویسی برای اجرا به کامپیوتر داده می شود.
اساس کار نوشتن یک برنامه طرز فکر و چگونگی رسیدن به هدف می باشد، که همان الگوریتم رسیدن به جواب می باشد. با دانستن الگوریتم می توان به سادگی با استفاده دستورات یک زبان برنامه نویسی آن را پیاده سازی کرد؛ اما اگر فقط دستورات برنامه نویسی را بدانیم و بخواهیم آنها را حفظ کنیم و به شیوه رسیدن به جواب یا الگوریتم مسلط نباشیم هیچگاه نخواهیم توانست برنامه نویسی را درک کرده و آن را بیاموزیم و همیشه برنامه نویسی کاری سخت و طاقت فرسا خواهد بود.
فهرست سرفصل درس ها و رئوس مطالب مطرح شده در این مجموعه آموزشی، در ادامه آمده است:
- درس اول: آشنایی با طراحی الگوریتم
- تعریف الگوریتم
- الگوریتم مقسوم علیه های یک عدد
- الگوریتم محاسبه تعداد مقسوم علیه های یک عدد
- الگوریتم عدد اول
- بهینه سازی الگوریتم عدد اول
- الگوریتم سری فیبوناچی
- الگوریتم محاسبه
- الگوریتم محاسبه جمع ارقام یک عدد
- الگوریتم محاسبه مقلوب یک عدد
- الگوریتم تجزیه به عامل های اول
- الگوریتم خرد کردن یک اسکناس
- بهینه سازی الگوریتم خرد کردن یک اسکناس
- درس دوم: الگوریتم های بازگشتی
- تابع
- تابع خودفراخوان یا بازگشتی (Recursive)
- الگوریتم ترتیب و ترکیب
- الگوریتم تابع بازگشتی ب.م.م
- الگوریتم بازگشتی تجزیه به عامل های اول
- برج هانوی
- تابع عدد اول
- الگوریتم تبدیل اعداد زوج به جمع دو عدد اول
- بهینه سازی الگوریتم تبدیل اعداد زوج به جمع دو عدد اول
- آرایه
- الگوریتم فیبوناچی با آرایه
- الگوریتم محاسبه اعداد اول به روش غربال
- درس سوم: الگوریتم های تقسیم و حل
- الگوریتم عمومی تقسیم و حل
- الگوریتم توان رسانی به روش تقسیم
- الگوریتم جستجوی دودویی
- الگوریتم مرتب سازی ادغامی (Merge Sort)
- الگوریتم مرتب سازی سریع
- الگوریتم زمان بندی مسابقات ورزشی
- درس چهارم: روش حریصانه
- زمان بندی بهینه اجرای برنامه ها
- کوله پشتی با ارزش ماکزیمم
- درخت پوشای مینیمم
- کوتاهترین مسیرها از مبدا واحد
- الگوریتم ماشین سکه خردکن
- فشرده سازی داده ها – کد هافمن (Huffman)
- درس پنجم: روش برنامه سازی پویا
- فروشنده دوره گرد
- مثلث خیام
- گزیده ای از سایر روش ها
- مرتب سازی دودویی
- درختهای بازی
- روش های مکاشفه ای – هوش مصنوعی
- روش بازگشت به عقب
- انشعاب و تحدید
- مسایل رام نشدنی
مبحث «رابطه های بازگشتی» که در درس های «طراحی الگوریتم» و «ساختمان گسسته» مطرح می شود و در آزمون کارشناسی ارشد نیز از مباحث مهم این دروس بوده است، در فرادرس دیگری، با عنوان «روش های حل روابط بازگشتی» به عنوان مبحث تکمیلی این آموزش، در این لینک (+) ارائه شده است.
حسین :
سلام.
خیلی وقته منتظر این اموزش بودم. ممنون از لطفتون.
اسماعیل :
واقعاً می تونه کمک کننده باشه.
مهدی محمدی :
با عرض سلام و خسته نباشید خدمت تمامی مسئولان عزیز فرادرس.
بلافاصله بعد از تهیه این آموزش چند پارت اول این درس را مشاهده کردم بسیار عالی و شیوا تدریس شده است.
هزاران بار ممنون از سعی و تلاش شما عزیزان.
زهره :
آموزش خیلی خوبی بود.
حسین :
ممنون از انتشار این مجموعه.
نگین کوهی :
با سلام و تشکر از تلاش صمیمانه شما. آموزش خیلی است، فقط حیف که من شب امتحان با فرادرس اشنا شدم و فرصت تهیه کامل مجموعه و استفاده از ان را نداشتم. حیف شد.
bahary :
سلام. آموزش خوبی بود. خیلی ممنونم. همه موضوعات رو شامل می شه و این خیلی عالیه.
حسین :
در کل آموزش خوبی بود اما متاسفانه مدرس در مبحث مرتبه اجرایی صحبت زیادی نمیکنه.
محمد سعید :
آموزش مناسبی بود. من فکر کنم اگر به سمت مصداق های مختلف مرتبه اجرایی و رویکردهای کاهش آن در الگوریتم پیش برود، این دوره مخاطب زیادی خواهد داشت.
روحان الدین :
واقعا اطلاعات آموزنده و واضح اند. دست شما درد نکنه.
nilofar :
عالی
siamanto :
آیا در این مجموعه آموزشی از زبان برنامه نویسی خاصی استفاده شده است؟ مثل سی.
روابط عمومی :
در پاسخ به siamanto:
با سلام؛
ضمن تشکر از مکاتبه شما؛ به صورت کلی، درس طراحی الگوریتم در قالب تئوری ارائه شده و حل مثال و همینطور پیاده سازی مثال ها در قالب پروژه های برنامه نویسی، مرسوم نیست. اما در این دوره، مدرس به منظور جمع بندی و ارائه راه حل برنامه نویسی و نمایش عملکرد هر یک از الگوریتم ها، با استفاده از زبان برنامه نویسی C++ برخی از مثال ها را پیاده سازی کرده اند.
منتظر دیدار دوباره شما در فرادرس هستیم.
عباسی :
عالی و مفید بود. جهانی سپاس.
مریم :
واقعا عالی بود. متشکریم.
من میترسم از اون روزی که سایت فرادرس نباشه چون ۹۰ چیزا رو از فرادرس عزیز یاد گرفتم.
واقعا ممنون
مهتاب :
این فیلم همراه فیلم طراحی الگوریتم استاد شیرافکن به من مطالب خوبی در این درس آموزش داد. با تشکر از فرادرس.
محمدسجادکاشانی :
با سلام و عرض ادب،خیلی متشکرم از راهنماییهای خوب شما وهمکاران محترم متان که در سایتها برنامه خوب و آموزنده قرار می دهند.
مجید :
سلام- این آموزش برای دانشجویان کامپیوتر زیاد مناسب نیست و برای افرادی که می خواهند دیدی از این درس داشته باشند خوب است. سرفصل های آموزش عالی رعایت نشده است.
میثم :
سلام
من از تهیه این مجموعه زیاد راضی نیستم نسبت به سایر آموزش های فرادرس در سطح پایین تری است به نظرم.