دانشکده:دروس:22822:14011:main
فهرست مندرجات
ساختمان دادهها - نیمسال اول 1401
مدرس | ایمیل |
---|---|
علیرضا زارعی | zarei@sharif.edu |
توضیحات درس
هدف درس
هدف از این درس آشنایی با روشهای تحلیل الگوریتم و نیز داده ساختارهای پایهای و مهم است. همچنین برخی از مسائل مهم الگوریتمی از جمله مرتب سازی و نیز الگوریتمهای پیمایش داده ساختارها در این درس مورد نظر خواهد بود.
سرفصلها
- مباحث مقدماتی
- مراحل مختلف حل مساله و تفکر الگوریتمی، انتزاع و مدلسازی مساله، داده ساختارهای بدیهی شامل متغیر، کلاس و آرایه.
- روشهای تحلیل الگوریتمها
- شمارش مراحل اجرای یک الگوریتم در قالب مثالهای ساده از جمله مرتب سازی درجی و حبابی، توابع رشد، تحلیل زمان اجرای الگوریتمهای ترتیبی و بازگشتی، روشهای حل روابط بازگشتی شامل حدس و استقرا، تکرار با جایگذاری، قضیه اصلی و روابط بازگشتی همگن.
- داده ساختارهای ابتدایی
- داده ساختارهای خطی شامل لیست، صف، پشته و لیستهای دوطرفه و کلی.
- داده ساختارهای درختی
- روشهای پیادهسازی و پیمایشهای میان ترتیب، پس ترتیب و پیش ترتیب درخت، الگوریتم و حل مساله بر روی درخت، درختهای دودویی، درخت عبارت و تبدیل نگارشهای مختلف پسوندی، میانوندی و پیشوندی به هم، درخت جستجوی دودویی، صف اولویت و هرم بیشینه و کمینه، درختهای متوازن و یکی از پیادهسازیهای درخت متوازن از جمله درخت قرمز⁃سیاه.
- مرتب سازی و مرتبههای آماری
- کران پایین الگوریتمهای مرتب سازی و درخت تصمیم، الگوریتمهای بهینه مرتب سازی شامل مرتب سازی ادغامی و هرمی، مرتب سازی سریع، مرتب سازی خطی شامل مرتب سازی شمارشی، مبنایی و سطلی، مرتب سازی خارجی، مرتبه آماری و الگوریتم خطی یافتن میانه و مرتب سازی با کمترین مقایسه.
- روشهای درهم سازی
- داده ساختار جدول درهم سازی، درهم سازی زنجیرهای، توابع درهم سازی و درهم سازی سراسری، جداول پویا و تحلیل سرشکنی.
- داده ساختار گراف و الگوریتمهای مقدماتی
- روشهای پیاده سازی گراف، الگوریتمهای جستجوی عمق-اول و سطح-اول، مرتب سازی توپولوژیکی، الگوریتم یافتن اجزای همبند و قویا همبند.
پیشنیازهای علمی
این درس بعد از آشنایی دانشجویان با زبانهای برنامهنویسی و حل مساله در قالب یک برنامه کامپیوتر ارائه میشود. در نتیجه تسلط به یک زبان برنامهنویسی هنگام اخذ این درس الزامی است.
منابع درس
- M. Ghodsi. «Data Structures and Fundamentals of Algorithms(in persian)». 6th edition, Fatemi 1393.
- T. Cormen, C. Leiserson, R. Riverst, and C. Stein. «Introduction to Algorithms». 3rd edition, MIT Press, 2009.
نحوه ارزشیابی
- تمرین تئوری: 3 نمره
- در این درس 3 سری تمرین خواهیم داشت.
- تمرین برنامهنویسی: 5 نمره
- در این درس 3 تمرین برنامهنویسی خواهیم داشت.
- میانترم: 4 نمره
- پایانترم: 8 نمره
جدول زمانی و توضیحات آزمونها
آزمون | تاریخ برگزاری | مباحث مربوطه |
---|---|---|
میانترم | ۱۵:۰۰ عصر ۱۴۰۱/۰۹/۲۳ | تا پایان مبحث درختها |
پایانترم | ۹:۰۰ صبح ۱۴۰۱/۱۰/۲۰ | اعلام خواهد شد |
کلاس حل تمرین
کلاس | زمان برگزاری | محل برگزاری |
---|---|---|
دوشنبه | ۱۳ الی ۱۵ عصر | کلاس ۱۲۱ دانشکده علوم ریاضی |
چهارشنبه | ۱۵ الی ۱۷ عصر | کلاس مجازی در گوگل میت |
لینک شرکت در کلاسهای حل تمرین مجازی، پیش از کلاس در cw و گروه تلگرامی درس قرار میگیرد.
دستیاران آموزشی درس
نام دستیاران | ایمیل |
---|---|
سینا قاسمینژاد | sina.ghaseminejad@yahoo.com |
عرفان احمدی | ahmadier80@gmail.com |
پارسا زارعزاده | parsa.zarezadeh19@gmail.com |
محمدامین رئیسی | m.aminra81@gmail.com |
فرزام کرجی بانی | farzamkaraji1@gmail.com |
مریم مقدس | sanaz.moghaddas@yahoo.com |
مهرشاد تازیکی | mehrshad00taziki@gmail.com |
/opt/bitnami/dokuwiki/data/pages/دانشکده/دروس/22822/14011/main.txt · آخرین ویرایش: 2022/11/20 12:17 توسط superuser