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

نام تاپیک: هزینه ساخت یک درخت MinHeap

  1. #1

    Question هزینه ساخت یک درخت MinHeap

    چگونه می توان ثابت کرد که هزینه ساخت یک درخت MinHeap
    order of n است

  2. #2
    کاربر دائمی آواتار mohandese_hiclass
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    ارومیه
    پست
    132
    نقل قول نوشته شده توسط Alen
    چگونه می توان ثابت کرد که هزینه ساخت یک درخت MinHeap
    order of n است
    هزینه ساختش nlog(n) هستش؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

  3. #3
    کاربر دائمی
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    قفس فیلترینگ(ایران)
    پست
    208
    با سلام
    ضمن احترام به صحبت دوستمون
    باید به اطلاع شما دوستان برسونم که make_heap از مرتبه زمانی n است و باز اگه بخوام دقیق تر بگم ساخت هیپ کوچکتر از 3n است و این یعنی مرتبه n.
    البته لازم به ذکر است که در کتابهای ساختمان داده ها همون nlogn رو مطرح می کنن ولی الگوریتمی هست که در مبحث درس طراحی الگوریتم ارائه می شه و از مرتبه زمانی n برخوردار است .
    برای اثبات کمی جزئیات نیاز هست اگه علاقه مند بودید یه تاپیک بزارید حتما براتون یادداشت می کنم .
    موفق باشید .

  4. #4
    کاربر دائمی آواتار mohandese_hiclass
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    ارومیه
    پست
    132
    میشه کمی توضیح بدید

  5. #5
    کاربر دائمی
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    قفس فیلترینگ(ایران)
    پست
    208
    سلام
    الگوریتم زیر رو یه نگاه بندازین

    make_heap
    for i=n div 2 downto 1 do
    siftdown(i
    -------------------------------------------------------------
    روال سیفت دان هم بصورت زیر است

    SiftDown(i
    k=i
    repeat
    j=k
    if 2j<=n and T[2j] >T[K] then k=2j
    if 2j< n and T[2j+1] >T[K] then k=2j+1
    exchange T[j],T[k
    until j=k
    end siftdown

    خوب حالا می مونه تحلیل اینها
    در روال make heap یک ضریب n/2 داریم در مقدار زمان سیفت دان کل زمان رو می ده پس تا اینجا n/2 یادتون باشه
    در سیفت دان برای محاسبه تعداد تکرار حقه repeat یک بارومتر خوب باید انتخاب کنیم که j است
    در هر مرحله j دو برابر مرحله قبل می شه حالا اگر فرض کنیم تعدادگردش حلقه حداکثر m باشد داریم
    n>=2 jm >=4 j m-1 >= ... >= 2 pow(m-1)j
    که آخرین j برابر آخرین مقدار ارسالی توسط makeheapیعنی i=1می باشد
    بنابراین داریم
    n>= 2 pow(m-1) * i
    n/i >= 2 pow (m-1
    m-1 <= log (n/i
    m< log n/i +1
    پس یک سقف خوب یافتیم اما این سقف انحصارا بر مبنای n نیست

    اگر اجازه بدین توی یک فرصت دیگه بقیه اش رو ادامه می دم (ببخشید)

    ظاهرا اینجا خیلی خوب نمی شه این ها رو نوشت سعی می کنم با ورد بنویسم بیارم منتظر باشید
    آخرین ویرایش به وسیله raha_hakhamanesh : پنج شنبه 28 اردیبهشت 1385 در 13:05 عصر

  6. #6
    کاربر دائمی آواتار mohandese_hiclass
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    ارومیه
    پست
    132
    جالب بود ولی باز هزینش چندان کم نشده درسته کم شده ولی قابل اغماض ا

  7. #7
    کاربر دائمی
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    قفس فیلترینگ(ایران)
    پست
    208
    نوشتن بقیه کمی وقت گیره اگه کافیه ننویسم در غیر اینصورت اعلام کنید تا کاملش کنم
    موفق باشید

  8. #8
    کاربر دائمی آواتار mohandese_hiclass
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    ارومیه
    پست
    132
    نقل قول نوشته شده توسط raha_hakhamanesh
    نوشتن بقیه کمی وقت گیره اگه کافیه ننویسم در غیر اینصورت اعلام کنید تا کاملش کنم
    موفق باشید
    نه منظورتو گرفتم

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

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