تالار گفتمان مانشت
زمان اجرای الگوریتم - نسخه‌ی قابل چاپ

زمان اجرای الگوریتم - zr2358 - 16 بهمن ۱۳۸۹ ۱۰:۰۸ ق.ظ

این سوال رو چطوری حل می کنید؟
زمان اجرای الگوریتمی مطابق رابطه بازگشتی زیر محاسبه شده است. کدام گزینه صحیح است؟
[tex]f(n)=bn^{2} n.f(n-1)
f(1)=a[/tex]

[tex]f(n)=\theta (2^{n})
f(n)=\theta (n!)
f(n)=\theta (2^{n!})
f(n)=\theta (n!)^{2}[/tex]

جواب n! میشه

زمان اجرای الگوریتم - ف.ش - ۱۶ بهمن ۱۳۸۹ ۰۱:۰۵ ب.ظ

چرا با TEx نوشتین ولی اینجوریه!

اگه میشه درستش کنید خوانا نیست!
[tex]T(n)= nT(n-1) bn^{2}[/tex]
میتونید از بسط برید.
[tex]T(n)= nT(n-1) bn^{2}=n.n-1T(n-2) n^{2} n-1^{2}=......=n!T(1) n^{3}[/tex]
از این نکته هم استفاده کردم.
[tex]\sum_{i=1 }^{n}i^{2}=O(n^{3})[/tex]

و چون [tex]n^3=o(n!)[/tex]

جواب آخر میشه [tex]n![/tex]

زمان اجرای الگوریتم - zr2358 - 16 بهمن ۱۳۸۹ ۰۱:۵۴ ب.ظ

ممنونم
فهمیدم
نمی دونم چرا درست نمیشه
هرچی روی tex کلیک می کنم نمیاد دیگه!!

زمان اجرای الگوریتم - شیما رمضانی - ۲۳ خرداد ۱۳۹۰ ۱۱:۵۸ ق.ظ

با سلام
اگر زحمت نیست مرتبه زمانی الگوریتم را برایم توضیح دهید بطور کامل چونکه من اصلا" چیزی متوجه نمی شوم

RE: زمان اجرای الگوریتم - ف.ش - ۲۳ خرداد ۱۳۹۰ ۰۳:۵۸ ب.ظ

(۲۳ خرداد ۱۳۹۰ ۱۱:۵۸ ق.ظ)شیما رمضانی نوشته شده توسط:  با سلام
اگر زحمت نیست مرتبه زمانی الگوریتم را برایم توضیح دهید بطور کامل چونکه من اصلا" چیزی متوجه نمی شوم
یک سری عملیات در الگوریتم هست که زمان بر است مثل عملیات جمع،ضرب،... و شرط‌ها و حلقه‌ها

باید تعداد این عملیات رو حساب کنید.

مثلا یه حلقه دارید که n بار تکرار میشه و هر بار در این حلقه یک عمل جمع انجام میشه پس ما n تا جمع داریم یعنی مرتبه زمانی این حلقه n هست.

RE: زمان اجرای الگوریتم - farzaneh6 - 19 اسفند ۱۳۹۰ ۰۳:۳۹ ب.ظ

سلام دوستان

مرتبه زمانی قطعه کد زیر چیه ؟؟ کسی می تونه توضیح بده ، چطوری باید مرتبه زمانی را تعیید کرد؟

ممنون میشم کسی کمکم کنه

RE: زمان اجرای الگوریتم - ف.ش - ۱۹ اسفند ۱۳۹۰ ۰۸:۲۲ ب.ظ

(۱۹ اسفند ۱۳۹۰ ۰۳:۳۹ ب.ظ)farzaneh6 نوشته شده توسط:  سلام دوستان

مرتبه زمانی قطعه کد زیر چیه ؟؟ کسی می تونه توضیح بده ، چطوری باید مرتبه زمانی را تعیید کرد؟

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

فکر کنم ++n باید ++i باشه.
فکر کنم مرتبه logn باشه چون logk بار اون حلقه while اجرا میشه و بعد از اون دیگه مقدار k <1 است پس دیگه حلقه اجرا نمیشه البته اگر مرتبه چک کردن حلقه while رو یک بگیریم چون n بار حلقه for اجرا میشه و هر بار مقدار k با یک مقایسه میشه مرتبه میشه n+logn که میشه n اما اگر اون چک کردن رو در نظر نگیریم میشه logn