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

تابع perm یا جایگشت و زمان اجرای آن - g_monireh - 30 اردیبهشت ۱۳۹۲ ۰۵:۵۶ ب.ظ

[attachment=11245]سلام
اگر امکان داره یه توضیح در مورد تابع perm که جایگشت رو پیاده سازی می کنه و همچنین زمان اجراش بهم بدید. این تابع مربوط به کتاب پوران صفحه ۲۴ هست.Huh
زمان اجرا رو ((n(n!) تتا بدست اورده.

RE: تابع perm یا جایگشت و زمان اجرای آن - sanjana - 08 مرداد ۱۳۹۲ ۰۳:۲۴ ب.ظ

(۳۰ اردیبهشت ۱۳۹۲ ۰۵:۵۶ ب.ظ)g_monireh نوشته شده توسط:  سلام
اگر امکان داره یه توضیح در مورد تابع perm که جایگشت رو پیاده سازی می کنه و همچنین زمان اجراش بهم بدید. این تابع مربوط به کتاب پوران صفحه ۲۴ هست.Huh
زمان اجرا رو ((n(n!) تتا بدست اورده.
خوب خیلی ساده برات میگم! اصلا نمیخواد رو کد عمیق زوم کنی!
نگاه! کد به ۲ بخش تقسیم میشه: ۱) اون قسمتی که قرار هست برای ما روال تولید جایگشت رو انجام بده و ۲) قسمتی که قرار هست توی هر بار جایگشت برای ما یه سری کاراکتر چاپ کنه.
خوب می دونیم که تعداد جایگشت های n شی متمایز برابر !n است. پس ما !n بار قسمت تولید جایگشت رو تکرار می کنیم.بعدش توی هر بار تکرار n کاراکتر چاپ می کنیم.پس میشه از مرتبه زمانی [tex]O(n * n!)[/tex]
اما در رابطه با علامت [tex]\Theta[/tex]:
فکر کنم بخاطر stable بودن الگوریتم باشه که توش حالت های بهترین ، بدترین و میانگین یک جواب داره.(اگه اشتباه می کنم دوستان اصلاح کنن).دوست عزیز دیگه نمی دونم تا چه حد تونستم برات مفید توضیح بدم.Big Grin