مرتبه ی زمانی حلقه for و while - نسخهی قابل چاپ |
مرتبه ی زمانی حلقه for و while - farzaneh6 - 19 اسفند ۱۳۹۰ ۰۳:۴۸ ب.ظ
سلام دوستان ، کسی می دونه برای حلقه while مرتبه زمانی چطوری میشه ؟الان برای این سوال برای حلقه for میشه n+1 ، برای while چی میشه ؟؟ |
RE: مشکل - wildcoder - 19 اسفند ۱۳۹۰ ۰۴:۰۵ ب.ظ
(۱۹ اسفند ۱۳۹۰ ۰۳:۴۸ ب.ظ)farzaneh6 نوشته شده توسط: سلام دوستان ، کسی می دونه برای حلقه while مرتبه زمانی چطوری میشه ؟الان برای این سوال برای حلقه for میشه n+1 ، برای while چی میشه ؟؟ سلام. while هیچ فرق با for نداره.یعنی همون طور کهتعداد تکرار های for و حساب میکردی while هم همینطوری حساب میشه. اینجا مقدار k تا وقتی بزرگتر از یک باشه میره جلو.و هر دفه تقسیم بر ۲ میشه پس به تعداد log n بار تکرار میشه. |
مشکل - farzaneh6 - 19 اسفند ۱۳۹۰ ۰۴:۳۶ ب.ظ
تعداد گام رو چطوری باید محاسبه کرد ؟ (۱۹ اسفند ۱۳۹۰ ۰۴:۰۵ ب.ظ)wildcoder نوشته شده توسط:(19 اسفند ۱۳۹۰ ۰۳:۴۸ ب.ظ)farzaneh6 نوشته شده توسط: سلام دوستان ، کسی می دونه برای حلقه while مرتبه زمانی چطوری میشه ؟الان برای این سوال برای حلقه for میشه n+1 ، برای while چی میشه ؟؟ منظور از مرتبه زمانی همون مرتبه اجرایی برنامه است که بر حسب توابع O و امگا و تتا بیان میشه یعنی باید تعداد مراحل یا قدم ها رو حساب کنیم و در قالب سه تابع فوق اون رو بیان کنیم چطوری میشه بر حسب توابع نوشت ؟ |
RE: مشکل - wildcoder - 19 اسفند ۱۳۹۰ ۰۴:۴۸ ب.ظ
[attachment=3222][attachment=3222] (19 اسفند ۱۳۹۰ ۰۴:۳۶ ب.ظ)farzaneh6 نوشته شده توسط: تعداد گام رو چطوری باید محاسبه کرد ؟ تکرار ما وابسته به ارزش k هست.پس باید مقدار k را دنبال کنیم. ۱) k=n ۲) k=n/2 ۳) k=n/4 . . . m) تو این مرحله k=n/2^m-1 که مقدار k=<1 هست |
مشکل - mfXpert - 19 اسفند ۱۳۹۰ ۰۵:۳۵ ب.ظ
این تکه کدی که قرار دادید مشکل داره.در واقع ممکنه حلقه for بینهایت بار اجرا بشه ( چون n داره هر دفعه افزایش پیدا می کنه) اگر به جای n++ قرار بدیم i++ اون وقت مرتبه قطعه کد میشه بیگ اوی n |
RE: مشکل - farzaneh6 - 19 اسفند ۱۳۹۰ ۰۵:۴۹ ب.ظ
میشه برای این سوال تعداد گام ها رو بگید ، من متوجه نشدم |
مشکل - farzaneh6 - 19 اسفند ۱۳۹۰ ۰۶:۲۵ ب.ظ
بلی درسته باید بر حسب n بنویسم چند بار تکرار میشه ، ولی بلد نیستم |
RE: مشکل - zeinab - 23 مهر ۱۳۹۱ ۰۳:۴۵ ب.ظ
(۱۹ اسفند ۱۳۹۰ ۰۵:۳۵ ب.ظ)mfXpert نوشته شده توسط: این تکه کدی که قرار دادید مشکل داره.در واقع ممکنه حلقه for بینهایت بار اجرا بشه ( چون n داره هر دفعه افزایش پیدا می کنه) چرا میشه [tex]O(n)[/tex] ؟؟ نمیشه n logn ؟ |