PDA

View Full Version : سوال: پیچیدگی زمانی



JaVa
چهارشنبه 29 خرداد 1392, 11:03 صبح
سلام.

لطفا راهنماییم کنید.

من برای حل مسائل که در خصوص پیچیدگی زمانی T هستند مشکل دارم.

لطفا کمک کنید.

soroushp
چهارشنبه 29 خرداد 1392, 20:29 عصر
مثال بزنید

arash691
چهارشنبه 29 خرداد 1392, 21:32 عصر
سلام.

لطفا راهنماییم کنید.

من برای حل مسائل که در خصوص پیچیدگی زمانی T هستند مشکل دارم.

لطفا کمک کنید.

سوال خودتون رو مطرح کنید دیگه :دی

JaVa
چهارشنبه 29 خرداد 1392, 23:59 عصر
مثال بزنید

سوال خودتون رو مطرح کنید دیگه :دی

اگه امکانش هست یه توضیحی کامل هم بدید با تشکر فراوان

while(n>0)
{
i=1;
while(i<=n)i++;
for(j=n;j>0;j=j-2);
n--;
}

اگه خودتون هم چند تا مثال همراه با حل بزنید دیگه واقعا عالی میشه.

با تشکر فراوان

arash691
پنج شنبه 30 خرداد 1392, 00:45 صبح
while(n>0)
{
i=1;

while(i<=n)
i++;

for(j=n; j>0 ; j=j-2)
n--;

}


برای خارجی ترین حلقه داریم تتای n/2

برای for هم تتای n/2

while درونی هم n

حلقه ی خارجی خودش وابسته به forدرونی خودش هستش اگه یه مقدار فرضی بدی مثلا" n=8

4 بار تکرار میشه .. پس کلا" باتوجه به for همیشه n/2 میشه ... اما بطور کلی میشه :


O( 1/2 * n) = O( c * n) = O(n) c : عدد ثابت

soroushp
پنج شنبه 30 خرداد 1392, 22:24 عصر
برای شروع کتاب آقای یوسفی خوبه بعدش می تونید CLRS (http://en.wikipedia.org/wiki/Introduction_to_Algorithms)رو در صورت علاقه مطالعه کنید ؛
موفق باشید

JaVa
پنج شنبه 30 خرداد 1392, 22:47 عصر
نقل قول: پیچیدگی زمانی


while(n>0)

{

i=1;



while(i<=n)

i++;



for(j=n; j>0 ; j=j-2)

n--;



}



برای خارجی ترین حلقه داریم تتای n/2

برای for هم تتای n

while درونی هم n/2

حلقه ی خارجی خودش وابسته به while درونی خودش هستش اگه یه مقدار فرضی بدی مثلا" n=8

4 بار تکرار میشه .. پس کلا" باتوجه به while همیشه n/2 میشه ... اما بطور کلی میشه :

O( 1/2 * n) = O( c * n) = O(n) c : عدد ثابت

این جواب فکر نکنم که درست باشه؟!:متفکر:

arash691
پنج شنبه 30 خرداد 1392, 23:13 عصر
این جواب فکر نکنم که درست باشه؟!:متفکر:

اصلاح شد !