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

مرتبه ی زمانی حلقه for و while

ارسال:
  

farzaneh6 پرسیده:

مرتبه ی زمانی حلقه for و while

سلام دوستان ، کسی می دونه برای حلقه while مرتبه زمانی چطوری میشه ؟الان برای این سوال برای حلقه for میشه n+1 ، برای while چی میشه ؟؟


فایل‌(های) پیوست شده

۰
ارسال:
  

mfXpert پاسخ داده:

مشکل

این تکه کدی که قرار دادید مشکل داره.در واقع ممکنه حلقه for بینهایت بار اجرا بشه ( چون n داره هر دفعه افزایش پیدا می کنه)
اگر به جای n++ قرار بدیم i++ اون وقت مرتبه قطعه کد میشه بیگ اوی n

ارسال:
  

zeinab پاسخ داده:

RE: مشکل

(۱۹ اسفند ۱۳۹۰ ۰۵:۳۵ ب.ظ)mfXpert نوشته شده توسط:  این تکه کدی که قرار دادید مشکل داره.در واقع ممکنه حلقه for بینهایت بار اجرا بشه ( چون n داره هر دفعه افزایش پیدا می کنه)
اگر به جای n++ قرار بدیم i++ اون وقت مرتبه قطعه کد میشه بیگ اوی n

چرا میشه [tex]O(n)[/tex]
؟؟
نمیشه n logn ؟
یافتن تمامی ارسال‌های این کاربر

۰
ارسال:
  

wildcoder پاسخ داده:

RE: مشکل

(۱۹ اسفند ۱۳۹۰ ۰۳:۴۸ ب.ظ)farzaneh6 نوشته شده توسط:  سلام دوستان ، کسی می دونه برای حلقه while مرتبه زمانی چطوری میشه ؟الان برای این سوال برای حلقه for میشه n+1 ، برای while چی میشه ؟؟

سلام.
while هیچ فرق با for نداره.یعنی همون طور کهتعداد تکرار های for و حساب میکردی while هم همینطوری حساب میشه.
اینجا مقدار k تا وقتی بزرگتر از یک باشه میره جلو.و هر دفه تقسیم بر ۲ میشه پس به تعداد log n بار تکرار میشه.

۰
ارسال:
  

farzaneh6 پاسخ داده:

مشکل

تعداد گام رو چطوری باید محاسبه کرد ؟
(۱۹ اسفند ۱۳۹۰ ۰۴:۰۵ ب.ظ)wildcoder نوشته شده توسط:  
(19 اسفند ۱۳۹۰ ۰۳:۴۸ ب.ظ)farzaneh6 نوشته شده توسط:  سلام دوستان ، کسی می دونه برای حلقه while مرتبه زمانی چطوری میشه ؟الان برای این سوال برای حلقه for میشه n+1 ، برای while چی میشه ؟؟

سلام.
while هیچ فرق با for نداره.یعنی همون طور کهتعداد تکرار های for و حساب میکردی while هم همینطوری حساب میشه.
اینجا مقدار k تا وقتی بزرگتر از یک باشه میره جلو.و هر دفه تقسیم بر ۲ میشه پس به تعداد log n بار تکرار میشه.


منظور از مرتبه زمانی همون مرتبه اجرایی برنامه است که بر حسب توابع O و امگا و تتا بیان میشه
یعنی باید تعداد مراحل یا قدم ها رو حساب کنیم و در قالب سه تابع فوق اون رو بیان کنیم

چطوری میشه بر حسب توابع نوشت ؟

ارسال:
  

wildcoder پاسخ داده:

RE: مشکل

CodeCogsEqn.gif
اندازه فایل: ۴۰۹ bytes
CodeCogsEqn.gif
اندازه فایل: ۴۰۹ bytes
(۱۹ اسفند ۱۳۹۰ ۰۴:۳۶ ب.ظ)farzaneh6 نوشته شده توسط:  تعداد گام رو چطوری باید محاسبه کرد ؟

تکرار ما وابسته به ارزش k هست.پس باید مقدار k را دنبال کنیم.
۱) k=n
۲) k=n/2
۳) k=n/4
.
.
.
m)
تو این مرحله k=n/2^m-1
که مقدار k=<1 هست
یافتن تمامی ارسال‌های این کاربر

۰
ارسال:
  

farzaneh6 پاسخ داده:

RE: مشکل

میشه برای این سوال تعداد گام ها رو بگید ، من متوجه نشدم Huh


فایل‌(های) پیوست شده

ارسال:
  

farzaneh6 پاسخ داده:

مشکل

بلی درسته
باید بر حسب n بنویسم چند بار تکرار میشه ، ولی بلد نیستم



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

پرش به انجمن:

Can I see some ID?

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

Feeling left out?


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

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

Feeling left out?


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