نمایش نتایج 1 تا 5 از 5

نام تاپیک: نحوه‌ی محاسبه‌ی پیچیدگی زمانی

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1392
    پست
    43

    نحوه‌ی محاسبه‌ی پیچیدگی زمانی

    با سلام خدمت اساتید بزرگوار٬
    من نمی‌دونم که قسمت درستی از انجمن رو برای پرسیدن سوالم انتخاب کردم یا نه.. پیشاپیش از محضرتون عذر می‌خوام.
    سوالی که دارم در مورد درس ساختمان داده‌ها است و مربوط به بخش محاسبه‌‌ی پیچیدگی زمانی الگوریتم‌ها هست..
    متاسفانه استاد ما این بخش رو خیلی بد و بدون توضیح درس دادن! هیچ کس متوجه نشد!
    مدیون عزیزانی می‌شم که بنده رو راهنمایی می‌فرمایند. [در مبتدی‌ترین حالت ممکن!]


    for i = 1 to n do
    for j = 1 to i do
    a++;


    برای مثال پیچیدگی این الگوریتم چطور محاسبه می‌شه؟

  2. #2
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1392
    پست
    43

    نقل قول: نحوه‌ی محاسبه‌ی پیچیدگی زمانی

    اساتید محترم اگر کتابی رو می‌شناسن که این گونه مسائل رو خوب و کامل توضیح داده باشه و خوندنش برای من مبتدی رو مفید تشخیص می‌دن٬ لطفن معرفی بفرمایند.

  3. #3

    نقل قول: نحوه‌ی محاسبه‌ی پیچیدگی زمانی

    کتاب های طراحی الگوریتم معمولا در ابتدا نحوه محاسبه پیچیدگی زمانی را توضیح می دهند.

    ایجا یک نمونه کتاب در این مورد قرار داده شده. مطالعه کنید. سوالی داشتید در انجمن بپرسید


  4. #4
    کاربر دائمی آواتار ali_md110
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شیراز
    پست
    1,181

    نقل قول: نحوه‌ی محاسبه‌ی پیچیدگی زمانی

    سلام
    یک تاپیک جواب دادم اگر خوب متوجه نشدید پیام بدید راهنمایی میکنم
    https://barnamenevis.org/showthread.php?405543

    سلام
    ببینید دوست من برای محاسه پیچیدگی زمانی حلقه ها از فرمول مربوط به خودش استفاده مینکنیم
    توجه کنید که حلقه های تودرتو در یکدیگر تاثیر دارند پس اول باید اسکوپ حلقه مشخص بشه

    حلقه for یک بدنه داره و یک دستور

    for(i=1;i<=10;i++) دستور حلقه
    2*i بدنه حلقه


    مثال شما

    for i = 1 to n do

    for j = 1 to i do

    a++;






    برای محاسه از فرمول زیر استفاده میکنیم
    برای محاسبه پیچیدگی دستور حلقه: 1+(1+حدپایین-حد بالا)
    حالا منظور از حد بالا و پایین چیه؟
    منظور از حد پایین :مقدار شروع حلقه یعنی i=1 و یعنی عدد 1 هست
    پس حد پایین مساوی 1

    منظور از حد بالا میشه عددی که در شرط دستور حلقه i to n قرار داده شده یعنی n هست

    پس حد بالا هم شد n

    حالا اگر در فرمول جایگذاری کنیم پیچیدگی بدست میاد 1+ ( 1+ 1 - n)
    حاصل :اگر عدد 1- و 1+ درون پرانتر را با هم ساده کنیم فقط n میمونه پس جواب دستور حلقه با براکت دورش خط میکشم
    [(n)+1]

    اگر دقت کنیم در حلقه ها جواب درون پرانتر در بدنه حلقه ضرب میشه منظورن (n) هست که باید در بدنه ضرب بشه
    چون این خلقه تو درتو هست عدد طبق قرمول پیچیدگی دستور for دوم هم بدست میاریم1+(1+حدپایین-حد بالا)
    حد بالا میشه i
    حد پایین میشه j=1 و در نهایت عدد 1
    جاصل دستور حلقه دوم: 1+(i-1+1) و جواب ساده شده=
    (i)+1

    گفتیم که حاصل حلقه ها در بدنه تاثیر گذار هست پس nپرانتر حلقه اولی رو هم در جواب حلقه دوم ضرب میکنیم
    [(i+1)*n]


    میمونه بدنه حلقه که a++ هست و در طراحی الگوریتم به عبارت ++ امتیاز 1 داده میشود
    برای بدست آوردن پیچیدگی بدنه حلقه:
    حالا کاری که باید بکنیم بیایم جوابهای درون پرانتر هر دو دستور حلقه (n)و (i) که بدست آوردیم در جواب بدنه حلقه ( a++) یعنی عدد 1 بدست آمده ضرب کنیم
    حاصل جواب بدنه حلقه میشه
    [1*n*i]



    تا اینجا جوابهای دوتا حلقه for و بدنه بدست اوردیم و هر کدومشون گذاشتیم داخل براکت مشخص کردم

    در نهایت باید این جوابها را با هم جمع بکنبم
    T(n)=(n+1)+(i+1*n)+(1*n*i)
    آخرین ویرایش به وسیله ali_md110 : دوشنبه 05 آبان 1393 در 18:39 عصر

  5. #5

    Unhappy نقل قول: نحوه‌ی محاسبه‌ی پیچیدگی زمانی

    سلام لطفا کسی میتونه این رو محاسبه کنه و روش محاسبه زمانی رو برام بنویسه خیلی خیلی ممنونش میشم
    Name:  Untitled-1.jpg
Views: 1911
Size:  72.0 کیلوبایتاستادش گفته از لگاریتم و سیگما داخل هم لازمه استفاده بشه برای زمان اجرای الگوریتم بلد نیستم

تاپیک های مشابه

  1. طریقه محاسبه پیچیدگی زمانی
    نوشته شده توسط sourcecode در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 12
    آخرین پست: دوشنبه 14 اردیبهشت 1394, 21:59 عصر
  2. نحوه محاسبه پیچیدگی زمانی الگوریتم
    نوشته شده توسط میلاد قاضی پور در بخش الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها
    پاسخ: 1
    آخرین پست: پنج شنبه 16 آبان 1392, 18:24 عصر
  3. محاسبه پیچیدگی زمانی و مکانی یک برنامه
    نوشته شده توسط B E H N A M در بخش الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها
    پاسخ: 3
    آخرین پست: دوشنبه 21 آبان 1386, 14:30 عصر
  4. یک الگوریتم با پیچیدگی زمانی تتاnlogn
    نوشته شده توسط zahra_zapata در بخش الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها
    پاسخ: 13
    آخرین پست: جمعه 12 خرداد 1385, 22:05 عصر
  5. پیچیدگی زمانی واسه این مقایسه
    نوشته شده توسط Developer Programmer در بخش الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها
    پاسخ: 3
    آخرین پست: شنبه 14 شهریور 1383, 10:59 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •