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

مرتبه زمانی پیمایش میان ترتیب 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