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

پیچیدگی زمانی به روش ترسیم درخت

ارسال:
  

wskf پرسیده:

پیچیدگی زمانی به روش ترسیم درخت

دوستان چه جوری میاد ارتفاع درخت رو تشخیص میده و پیچیدگی زمانی رو بدست میاره .
مثلا تو این مثال :

مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.

مدرسان خیلی بد توضیح داده .
اگه کسی واضخ ترش می دونه توضیح بده لطفا
نقل قول این ارسال در یک پاسخ

۵
ارسال:
  

Pure Liveliness پاسخ داده:

RE: پیچیدگی زمانی به روش ترسیم درخت

سلام.
اول ریشه ی درخت رو میبینیم که هزینه ش چقدر هست. که n2 هست. اون رو به عنوان ریشه میگذاریم.
توی این جا ریشه ۸ تا فرزند T(n2) داره. اون ها رو به عنوان فرزندهاش میگذاریم. توی این سطح هزینه رو حساب میکنیم. هر T(n2) هزینه ش هست (n2)2 پس هزینه ی این سطح میشه ۸ تا n24 و در مجموع هزینه ی این سطح میشه 2n2
توی سطح بعد هر کدوم از فرزندهای سطح قبل ۸ تا فرزند دارند که هر کدوم T(n4) هستند که کلا ۶۴ تا هستند و هزینه ی هر کدوم میشه n216 و در مجموع هزینه ی این سطح میشه 4n2
.
.
همونطور که میبینیم هزینه ی سطوح متفاوت هست.
در صورتی که هزینه ی سطح ها با هم برابر باشه هزینه ی کل برابر میشه با ارتفاع درخت ضربدر هزینه ی یک سطح.
اما در اینجا که هزینه ها یکسان نیست و یک تصاعد هندسی رو تشکیل میده هزینه ها رو با هم جمع میکنیم.
n2+2n2+4n2+8n2+....+2kn2=n2(20+21+22+....+2k)
حالا k ارتفاع درخت هست. چون همون طور که میبینیم توی سطح یک مقدارش برابر با ۱، توی سطح ۲ مقدارش برابر با ۱ و …. هست.
برای به دست آوردن k (ارتفاع درخت):
درخت تا جایی ادامه پیدا میکنه که برسه به برگ ها یعنی T(1) (گاهاََ ممکنه طبق فرضیات T(1) برگ نباشه و T(2) باشه.
حالا باید ببینم که هر سطح از چه قانونی پیروی میکنه و چطور میرسه به برگ.
توی سطح اول داریم: T(n20)
توی سطح دوم داریم: T(n21)
توی سطح سوم داریم: T(n2۲)

و به همین ترتیب توی سطح k ام داریم : T(n2k) وقتی که به T(1) برسیم به برگ ها رسیدیم و درخت تا همین جا ادامه پیدا میکنه این k ارتفاع درخت هست.
باید T(n2k)==T(1) که میشه: n2k=1n=2kk=logn
پس ارتفاع درخت logn هست. (البته دقیق تر بخوایم بگیم چون تعداد سطوح یکی از ارتفاع بیشتر هست و ما اینجا تعداد سطوح (k) رو به دست آوردیم، ارتفاع درخت logn1 هست.
همونطور که حساب کردیم هزینه ی مجموع سطوح میشد : n2×k=lognk=02k و البته طبق توضیح بالا اگه بخوایم دقیق تر بگیم k حداکثر logn1 هست.
خب می دونیم: 20+21+....+2logn1=Σlogn1k=02k=20×(12logn1+1)12=(2logn1)=θ(2logn)=(2logn2)=n
خب پس مرتبه ی تابع (مجموع هزینه های تمام سطوح) میشه:
n2×Σlogn1k=02k=n2×n=n3
T(n)=θ(n3)
نقل قول این ارسال در یک پاسخ

۱
ارسال:
  

wskf پاسخ داده:

RE: پیچیدگی زمانی به روش ترسیم درخت

عالی بود مرسی ..
موفق باشیم
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

Saman پاسخ داده:

RE: پیچیدگی زمانی به روش ترسیم درخت

......
نقل قول این ارسال در یک پاسخ



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

پرش به انجمن:

Can I see some ID?

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

Feeling left out?


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

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

Feeling left out?


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