بدست آوردن اوی بزرگ O الگوریتم - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

بدست آوردن اوی بزرگ O الگوریتم

+3 امتیاز
مفهموم این O الگوریتم که می گن چیه ؟  بعد جه جوری محاسبه میشه ؟

با تشکر .
سوال شده بهمن 27, 1392  بوسیله ی sibzamini (امتیاز 25)   2 4 5
دوباره تگ گذاری شد مهر 4, 1393 بوسیله ی BlueBlade

3 پاسخ

+4 امتیاز
 
بهترین پاسخ

(صرفا جهت اطلاع)

تعریف ریاضی تابع O که در کتاب طراحی الگوریتم با رویکرد خلاقانه نوشته ی یودی منبر آمده است:

برای ارزیابی زمان اجرای یک الگوریتم، از عوامل ثابت چشم پوشی میکنیم. برای بهتر انجام دادن این کار به نماد گذاری ویژه ای احتیاج داریم. میگوییم تابع ( g( n از ( ( O ( f (n است اگر ثابت های c و N وجود داشته باشند به گونه ای که برای n>=N داشته باشیم:

g(n) <= c.f(n)

به عبارت دیگر به ازای n های به اندازه ی کافی بزرگ، تابع( g( n از چند برابر تابع( f( n بیشتر نیست. (در این جا "چند" ضریبی ثابت است)

تبصره: ممکن است برای n های کوچک، (  g( n از (  c.f( n خیلی کوچکتر باشد ولی نماد O، آن را تنها از بالا محدود میکند.

مثلا 5n^2 + 15 از ( O( n^2 است.

پاسخ داده شده فروردین 26, 1393 بوسیله ی MaGaroos (امتیاز 658)   11 18 36
انتخاب شد فروردین 26, 1393 بوسیله ی BlueBlade
+2 امتیاز
O به معنای order هست یعنی تعداد عملیاتی که الگوریتم نیاز داره تا اجرا بشه مثلا برای پیدا کردن بزرگترین عضو یه ارایه با n عضو میگن (O(n چون توی بدتیرن حالت باید همه عضای ارایه رو چک کنیم پس با n عملیات نیاز داریم

محاسبه هم روش خاصی نداره مثل همین مثالی که زدم محاسبه میکنن ولی مثلا ضریب رو توی order حساب نمیکنن  یعنی (O(n) = O (2n  و یا قواعد دیگه که من زیاد اشنا نیستم
پاسخ داده شده بهمن 30, 1392 بوسیله ی amirhossein (امتیاز 119)   2
+2 امتیاز
اگر بخواهیم رفتار یک الگوریتم را برای ورودی های بزرگ بررسی کنیم از نماد های مجانبی مانند تتا ، امگا ، بیگ ا و دیگر موارد استفاده می کنیم - O یک الگوریتم به این معناست که رفتار آن الگوریتم در بدترین حالت از آن حد تجاوز نخواهد کرد (اگر از ثابت ها صرف نظر کنیم )
پاسخ داده شده اسفند 19, 1392 بوسیله ی Pakniat (امتیاز 247)   11 21 32
...