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

محاسبه ی big-o در یک شبه کد

ارسال:
  

taranome baran پرسیده:

محاسبه ی big-o در یک شبه کد

سلام دوستان.
من نمیدونم در محاسبه ی big-o در یک شبه کد باید چه قسمت هایی را در نظر بگیرم. و اصلا محاسبه ی big-o برای یک شبه کد چه مفهومی داره .
مثلا در کد زیر من فکر میکنم که big-o در اون[tex]4\times n\: \: 4[/tex] هست. ولی همه میگن اشتباهه.چرا؟ میشه یکی از دوستان توضیح بده؟
int s=0;// 1 time
int h=1; // 1 time
int i=0; // 1 time
while(i<=n) // n+1 time
{
s++;// n time
h++; // n time
i++; // n time
}
ممنون میشم اگه یه نفر راهنماییم کنه. مرسی
نقل قول این ارسال در یک پاسخ

۲
ارسال:
  

poldasht پاسخ داده:

RE: محاسبه ی big-o در یک شبه کد

سلام

ببین من میخوام یه مثال بزنم، بعد تعمیمش میدیم به این سوال.

فرض کن تو حساب بانکیت ۵۰،۰۰۰،۱۰۰ تومن پول داری، خب یکی ازت بپرسه چقدر تو حسابته چی میگی؟ نمیگی که ۵۰ میلیون و ۱۰۰ تومن پول دارم، میگی ۵۰ میلیون تو حسابمه (اگه یگی اونم Wink )

مرتبه زمانی هم دقیقا همینه، اگه الگوریتمت ۵۰،۰۰۰،۱۰۰ بار اجرا بشه، بخوای تو یه مقاله ای یا هرجایی تعداد اجراش رو بگی، نمیای بگی ۵۰ میلیون و ۱۰۰ بار، میگی ۵۰ میلیون بار.

خب با این مقدمه بیا فرض کنیم الگوریتمت n+100 بار اجرا میشه، اگه جای n بذاری ۵۰ میلیون، همون عبارت بالایی میشه، پس طبق آنچه گفته شد نیازی نیست بیای بگی الگوریتم من n+100 بار اجرا میشه.

*** البته اینکه n+100 بار اجرا میشه عدد دقیقه و مشکلی نیست. اما دقت کن:

فرض کن گاها الگوریتمت n+100 بار و گاها n+101 بار اجرا میشه، پس نیازی نیست اینا رو بگی، الگوریتم من n بار اجرا میشه کافیه.

----------------------

تو کد بالا:
داخل حلقه خودتم گفتی n بار اجرا میشه. حالا چندتا کد بیرون هست که بقولی یه اپسیلون بار اجرا میشن (۳ بار) و یکم هم داخل حلقه (۳n). اینا مسئله نیست. مهم اینه که الگوریتمت n بار اجرا میشه. (مرتبه اجراییش n هست طبق گفته های بالا)

مرتبه عم چند نوعه، تو بیگ اُ میای سقفشو در نظر میگیری، مثلا، میتونی بنویسی بیگ اوی n بار، خوب معلومه n بار اجرا میشه، میتونی بنویسی بیگ اوی n^2 بار، خب معلومه n بار اجرا میشه و n هم از n^2 کمتره.

البته تعریف ریاضی اینا تو کتابا هست که من نخواستم باز نویسی کنم.

اینم یه تعریف از ویکی پدیا:
Example of Big O notation: f(x) ∈ O(g(x)) as there exists c > 0 (e.g., c = 1) and x0 (e.g., x0 = 5) such that f(x) <= cg(x) whenever x > x0.


نقل قول این ارسال در یک پاسخ

ارسال:
  

taranome baran پاسخ داده:

RE: محاسبه ی big-o در یک شبه کد

ممنون از پاسختون. متوجه شدم. لطف کردید
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  هاست یا میزبانی وب چیست؛ انواع آن کدامند؟ B0020 ۰ ۷۷۷ ۰۹ فروردین ۱۴۰۲ ۰۲:۵۷ ب.ظ
آخرین ارسال: B0020
  پارسه، مدرسان شریف،ماهان و.... کدام یک بهتره؟؟؟ alim93 ۶۴ ۷۴,۶۷۹ ۰۷ تیر ۱۴۰۱ ۱۲:۵۶ ق.ظ
آخرین ارسال: عزیز دادخواه
  بین پردازش تصویر و داده کاوی موندم کدوم یکی رو برای پایان نامه انتخاب کنم؟ raheleh1393 ۵ ۸,۵۰۳ ۰۱ دى ۱۴۰۰ ۰۲:۴۸ ب.ظ
آخرین ارسال: golkhorami
  سلام بچه های کدهای سیستم تهویه هوا رو کسی داره فاطمه دیبا ۰ ۱,۴۰۶ ۱۲ آبان ۱۴۰۰ ۰۹:۱۲ ق.ظ
آخرین ارسال: فاطمه دیبا
  کدام زبان برای هوش مصنوعی بهتر است؟ فرق بین زبان های هوش مصنوعی چیست؟ azam2075 ۳ ۶,۰۳۴ ۱۴ مهر ۱۴۰۰ ۰۷:۲۱ ب.ظ
آخرین ارسال: علیصا
  آزمون آزمایشی ارشد کدام موسسه را شرکت کنیم Ali1991khe ۲ ۳,۶۵۰ ۱۴ آبان ۱۳۹۹ ۱۲:۰۹ ق.ظ
آخرین ارسال: Ali1991khe
  آزمون آزمایشی ارشد کدام موسسه را شرکت کنیم Ali1991khe ۲ ۳,۳۴۶ ۰۸ آبان ۱۳۹۹ ۱۲:۰۴ ب.ظ
آخرین ارسال: Ali1991khe
  مرتبه شبه کد rad.bahar ۱ ۲,۳۳۰ ۲۲ مهر ۱۳۹۹ ۰۹:۳۲ ب.ظ
آخرین ارسال: BBumir
  کدام زبان برنامه‌نویسی بهترین انتخاب است؟ elecomco ۲ ۳,۱۲۴ ۱۰ شهریور ۱۳۹۹ ۰۵:۱۶ ب.ظ
آخرین ارسال: kilookiloo
  دانلود آموزش تصویری کلاس درس نظریه اطلاعات و کدینگ دانشگاه فردوسی jazana ۵ ۷,۱۹۳ ۰۷ خرداد ۱۳۹۹ ۰۹:۱۰ ق.ظ
آخرین ارسال: hosein92

پرش به انجمن:

Can I see some ID?

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

Feeling left out?


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

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

Feeling left out?


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