زمان کنونی: ۲۸ آبان ۱۴۰۳, ۱۰:۳۱ ق.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

مرتبه زمانی پیمایش میان ترتیب bst؟

ارسال:
  

sos006 پرسیده:

مرتبه زمانی پیمایش میان ترتیب bst؟

پیمایش های bst از چه مرتبه ای است؟ همه جا نوشتن O(n) .تو کتاب clrs هم همینطور البته توضیح داده که مثلا برای پیمایش میانترتیب کوچکترین گره رو با tree-Min پیدا میکنیم.بعد n-1 بار Tree-Successor رو فراخوانی میکنیم.
مگه Tree-Successor از مرتبه O(logn) نیست؟ درنتیجه پیمایش bst باید از مرتبه O(nlog) بشه نه O(n) . چونکه n-1 بار Tree-Successor رو فراخوانی کردیم!
مشاهده‌ی وب‌سایت کاربر

۰
ارسال:
  

حامد پاسخ داده:

RE: مرتبه زمانی پیمایش میان ترتیب bst؟

در پیمایش مثلا میان ترتیب،کاری که صورت میگیره اینه که یک گره(در اینجا ریشه) تکلیفش معلوم میشه و تابعمون به دو قسمت شکسته میشه و.پس می تونیم بگیم که تابع بازگشتی بصورت زیردارد:

[tex]T(n) = T(k) T(n – k – ۱) c[/tex]

حالا توی حالتهای مختلف تابع بالا را در نظر میگیریم:
حالت اول:یکی از زیر درختها خالی و بقیه در دیگری.

[tex]T(n) = T(0) T(n – ۱) c[/tex]

بصورت بازگشتی که بنویسیم داریم:

[tex]T(n) = (n-1)T(0) T(1) (n-1)c[/tex]

با توجه به اینکه پیمایش یک درخت خالی زمان ثابتی خواهد شد. تابع از مرتبه [tex]O(n)[/tex] خواهد بود.
حالت دوم:دو زیر درخت مساوی.

[tex]T(n) = 2T(\left \lfloor \frac{n}2 \right \rfloor ) c[/tex]

که توی این حالت هم طبق قضیه master تابع از مرتبه [tex]O(n)[/tex] خواهد بود.
ولی روشی که خودتون گفتید:
پیدا کردن مینیمم که [tex]O(n)[/tex] طول میکشه چرا که ممکنه درختمون اریب باشه.Tree-Successor هم همانطور که گفتید از مرتبه [tex]O(lgn)[/tex] هست.ولی الگوریتم مورد نظر خیلی پیچیده‌تر از اینه که شما به این سادگی بهش نگاه کردید و اثبات طولانی دارد.فقط همین رو بگم که ثابت میشه که هر یال درخت در این الگوریتم حداکثر دو بار پیمایش خواهد شد.

۰
ارسال:
  

sal_dovomi پاسخ داده:

RE: مرتبه زمانی پیمایش میان ترتیب bst؟

الگوریتم succ از مرتبه O(h) هست که در بدترین حالت میشه O(n) و درحالت متوسط میشه O(lgn).و در پیمایش باید کل گره‌ها یعنی بدترین حالت رو در نظر بگیریم.دوستان اگه اشتباه میگم اصلاح کنید.

ارسال:
  

حامد پاسخ داده:

RE: مرتبه زمانی پیمایش میان ترتیب bst؟

(۲۹ دى ۱۳۸۹ ۰۴:۱۴ ب.ظ)sal_dovomi نوشته شده توسط:  الگوریتم succ از مرتبه O(h) هست که در بدترین حالت میشه O(n) و درحالت متوسط میشه O(lgn).و در پیمایش باید کل گره‌ها یعنی بدترین حالت رو در نظر بگیریم.دوستان اگه اشتباه میگم اصلاح کنید.

منظور من حالت متوسط بود.و می خواستم به صاحب تاپیک بگم که تناقضی توی دانسته هاشون وجود نداره و این الگوریتم پیمایش میان ترتیب(با استفاده از Tree-Min و Tree-Successor) متفاوت می باشد و برای بدست آوردن مرتبه زمانی آن نیز اثبات خاص خودش وجود داره. مگرنه در درخت BST اکثر توابع وابسته به ارتفاع هستند.
یافتن تمامی ارسال‌های این کاربر



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
Exclamation سلام لطفاً یکی به من بگه مرتبه زمانی ها چطوری به log تبدیل میشن فرمول داره؟؟ Azadam ۶ ۴,۸۶۴ ۰۶ دى ۱۴۰۰ ۰۹:۰۲ ق.ظ
آخرین ارسال: Soldier's life
  دو سوال در مورد درخت BST(درخت جستجوی دودویی) امیدوار ۳ ۵,۵۷۴ ۱۰ دى ۱۳۹۹ ۱۲:۰۴ ق.ظ
آخرین ارسال: marzi.pnh
  مرتبه ایجاد درخت rad.bahar ۱ ۳,۳۶۹ ۳۰ مهر ۱۳۹۹ ۰۳:۳۴ ب.ظ
آخرین ارسال: rad.bahar
  مرتبه شبه کد rad.bahar ۱ ۲,۳۳۰ ۲۲ مهر ۱۳۹۹ ۰۹:۳۲ ب.ظ
آخرین ارسال: BBumir
  حل مساله مرتبه زمانی حلقه های تو در تو sarashahi ۱۶ ۲۲,۹۴۴ ۱۹ خرداد ۱۳۹۹ ۰۱:۱۶ ب.ظ
آخرین ارسال: gillda
  مرتبه زمانی Sanazzz ۱۷ ۲۱,۴۹۲ ۰۹ اردیبهشت ۱۳۹۹ ۰۶:۴۶ ب.ظ
آخرین ارسال: mohsentafresh
  پیچیدگی زمانی اکشن های قابل اعمال در یک وضعیت اsepid8994 ۰ ۱,۷۸۵ ۲۹ اسفند ۱۳۹۸ ۱۲:۵۱ ب.ظ
آخرین ارسال: اsepid8994
  مرتبه زمانی یافتن قطر Sepideh96 ۲ ۳,۷۹۸ ۰۸ آذر ۱۳۹۸ ۰۴:۳۴ ب.ظ
آخرین ارسال: erfan30
  مرتبه مانی Sanazzz ۳ ۳,۷۰۰ ۰۵ خرداد ۱۳۹۸ ۰۲:۳۶ ب.ظ
آخرین ارسال: Sanazzz
Sad کمک خواهشا برنامه ریزی ترتیب جزئی Sanazzz ۲ ۳,۰۹۳ ۱۹ بهمن ۱۳۹۷ ۱۰:۲۲ ب.ظ
آخرین ارسال: Sanazzz

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close