![]() |
نحوه محاسبه پیچیدگی زمانی؟ - نسخهی قابل چاپ |
نحوه محاسبه پیچیدگی زمانی؟ - reza_a - 03 آبان ۱۳۹۲ ۰۲:۳۴ ب.ظ
سلام. اگر پیچیدگی زمانی t(n) را از ما بخوان که محاسبه کنیم، طبق صورت برنامه چطور باید اینکار رو انجام بدیم؟ for (i=1;i<=n;i++) { j=n; while (j>=1) j=j/2; } ممنون میشم اگر یک توضیحی برای سوال بالا بدین و راه حلی بگید. با تشکر |
RE: نحوه محاسبه پیچیدگی زمانی؟ - vojoudi - 03 آبان ۱۳۹۲ ۰۷:۱۵ ب.ظ
(۰۳ آبان ۱۳۹۲ ۰۲:۳۴ ب.ظ)reza_a نوشته شده توسط: سلام. اگر پیچیدگی زمانی t(n) را از ما بخوان که محاسبه کنیم، طبق صورت برنامه چطور باید اینکار رو انجام بدیم؟سلام خوب حلقه داحلی منظورم همون while هست چون شمارندش داره هر دفعه تقسیم میشه به ۲ تعداد تکرارش میشود : [tex]log_2(n)[/tex] حلقه بیرونی هم یه فور معمولی هست که ان بار اجرا میشود پس تعداد اجرا های این دو حلقه رو در هم ضرب میکنیم که میشود : [tex]nlogn[/tex] |
RE: نحوه محاسبه پیچیدگی زمانی؟ - reza_a - 03 آبان ۱۳۹۲ ۰۷:۱۹ ب.ظ
خیلی متشکرم. یعنی هر جا while داشت ۲ تا حساب میشه و حلقه for میشود n تا؟ بعد واحد محاسبه پیچیدگی زمانی log هست؟ ممنونم. |
RE: نحوه محاسبه پیچیدگی زمانی؟ - vojoudi - 03 آبان ۱۳۹۲ ۰۷:۲۸ ب.ظ
(۰۳ آبان ۱۳۹۲ ۰۷:۱۹ ب.ظ)reza_a نوشته شده توسط: خیلی متشکرم. یعنی هر جا while داشت ۲ تا حساب میشه و حلقه for میشود n تا؟ بعد واحد محاسبه پیچیدگی زمانی log هست؟ ممنونم. اگر وقت و حوصله داری این id رو add کن تو یاهو مسنجر بیا یادت بدم. nader.vojoudi شما رو مفاهیم بنیادی پیچیدگی مشکل داری یکم. |