ابزار کاربر

ابزار سایت


دانشکده:دروس:22822:14011:main

ساختمان داده‌ها - نیم‌سال اول 1401

مدرس ایمیل
علیرضا زارعی zarei@sharif.edu

توضیحات درس

هدف درس

هدف از این درس آشنایی با روش‌های تحلیل الگوریتم و نیز داده ساختارهای پایه‌ای و مهم است. همچنین برخی از مسائل مهم الگوریتمی از جمله مرتب سازی و نیز الگوریتم‌های پیمایش داده ساختارها در این درس مورد نظر خواهد بود.

سرفصل‌ها

  1. مباحث مقدماتی
    • مراحل مختلف حل مساله و تفکر الگوریتمی، انتزاع و مدل‌سازی مساله، داده ساختارهای بدیهی شامل متغیر، کلاس و آرایه.
  2. روش‌های تحلیل الگوریتم‌ها
    • شمارش مراحل اجرای یک الگوریتم در قالب مثال‌های ساده از جمله مرتب سازی درجی و حبابی، توابع رشد، تحلیل زمان اجرای الگوریتم‌های ترتیبی و بازگشتی، روش‌های حل روابط بازگشتی شامل حدس و استقرا، تکرار با جایگذاری، قضیه اصلی و روابط بازگشتی همگن.
  3. داده ساختارهای ابتدایی
    • داده ساختارهای خطی شامل لیست، صف، پشته و لیست‌های دوطرفه و کلی.
  4. داده ساختارهای درختی
    • روشهای پیاده‌سازی و پیمایش‌های میان ترتیب، پس ترتیب و پیش ترتیب درخت، الگوریتم و حل مساله بر روی درخت، درخت‌های دودویی، درخت عبارت و تبدیل نگارش‌های مختلف پسوندی، میانوندی و پیشوندی به هم، درخت جستجوی دودویی، صف اولویت و هرم بیشینه و کمینه، درخت‌های متوازن و یکی از پیاده‌سازی‌های درخت متوازن از جمله درخت قرمز⁃سیاه.
  5. مرتب سازی و مرتبه‌های آماری
    • کران پایین الگوریتم‌های مرتب سازی و درخت تصمیم، الگوریتم‌های بهینه مرتب سازی شامل مرتب سازی ادغامی و هرمی، مرتب سازی سریع، مرتب سازی خطی شامل مرتب سازی شمارشی، مبنایی و سطلی، مرتب سازی خارجی، مرتبه آماری و الگوریتم خطی یافتن میانه و مرتب سازی با کمترین مقایسه.
  6. روش‌های درهم سازی
    • داده ساختار جدول درهم سازی، درهم سازی زنجیره‌ای، توابع درهم سازی و درهم سازی سراسری، جداول پویا و تحلیل سرشکنی.
  7. داده ساختار گراف و الگوریتم‌های مقدماتی
    • روش‌های پیاده سازی گراف، الگوریتم‌های جستجوی عمق-اول و سطح-اول، مرتب سازی توپولوژیکی، الگوریتم یافتن اجزای همبند و قویا همبند.

پیش‌نیازهای علمی

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

منابع درس

  • 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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki