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

مرتبه ی اجرایی (پیچیدگی الگوریتم)

ارسال:
  

fusion پرسیده:

مرتبه ی اجرایی (پیچیدگی الگوریتم)

سلام دوستان تو مقدمه درس اولین فصل که الگوریتم این موضوع استاد عنوان کردن اصلا مفهوم این بخش متوجه نمیشم
مطالب دیگه هست که زمینه میکنم



مرتبه ی اجرایی (پیچیدگی الگوریتم ) Order (O)

مرتبه ی اجرایی محاسبه فاکتوریال عدد N : T~N =>O(N) *N N!=1*2*3
مرتبه ی اجرایی محاسبه مجموعه یک آرایه N عضوی : O(N)
مرتبه ی اجرایی محاسبه بزرگترین عنصر یک آرایه N عضوی : O(N)
مرتبه ی اجرایی محاسبه جستوجو خطی یا ترتیبی در آرایه N عضوی : O(N)


فایل‌(های) پیوست شده
D.zip
اندازه فایل: ۱/۵۶ MB
نقل قول این ارسال در یک پاسخ

۱
ارسال:
  

iwes پاسخ داده:

RE: مرتبه ی اجرایی (پیچیدگی الگوریتم)

ببینید توی علوم کامپیوتر کلا وقتی یه الگوریتمی(یه راه حل به زبان ساده) برای یه مسئله داریم میخوایم بدونیم این راه حل ما چقدر خوبه؟ یعنی ما اگه بخوایم یه برنامه بنویسیم که همون مسئله رو حل کنه چقدر سریع اجرا میشه؟حالا بحث اینه که سخت افزار کامپیوتر ها با هم دیگه فرق دارن یعنی اینکه ممکنه یه برنامه مثلا با یه ورودی خاص ۱۰ ثانیه روی یه کامپیوتر طول بکشه تا اجرا بشه و همون برنامه با همون ورودی روی کامپیوتر دیگه ۵ ثانیه .پس تا اینجا تحلیل سریع اجرا شدن الگوریتم وابسته یه سخت افزار هستش. اومدن گفتن اینجوری نمیشه یعنی توی دنیا هزار جور کامپیوتر مختلف هستش نمیشه برای تک تک اون ها ما بیایم سرعت جداگانه الگوریتم رو حساب کنیم. پس یه روش دیگه برای تحلیل پیچیدگی یا سرعت اجرای برنامه داشته باشیم که تقریبا مستقل از سخت افزار باشه .یعنی وقتی میگیم مثلا فلان الگوریتم پیچیدگیش n هستش رو همپه ی سخت افزار ها همین هستش تقریبا و عامل سخت افزار رو معمولا با ضریب ها اثر میدن.این تا اینجا .این که میگن فلان الگوریتم اردر n هستش یعنی چی؟مثلا همون که استادتون گفتن زمان اجرای جمع یه ارایه n هستش یعنی چی؟ببینید طبق توضیحات بالا که عرض کردم برای محاسبه سریع بودن یه الگوریتم اومدن گفتن که خوب چون زمان اجرا تقریبا وابسته به سخت افزار هستش ما یه روشی ارائه میدیم که زیاد سخت افزار دخیل نباشه وقتی میگیم الگوریتم مرتبه ی اجراش t(n)=n هستش یا همون که شما میگید n(مفهوم عام نه دقیق ریاضی) یعنی این که زمان اجرا برنامه شما همون t تابعی از مقدار(بزرگی)ورودی برنامه شما n هست .این یعنی چی؟یعنی اینکه اگه شما قبلا جمع ارایه برای ۲تا عنصر انجام میدادید و حالا برای ۴ تا عنصر میخواید همون کار رو انجام بدید زمان اجرای برنامه ۲ برابر میشه پس
t(2)=2
t(4)=4
t(8)=8
t(10)=10 متوجه شدید؟یعنی اگه یه ارایه ی ۱۰۰ تایی داشته باشید میشه t(100)=100 یعنی یه صورت خطی اگه شما اندازه ی ارایه رو ۱۰۰ برابر کنید زمان اجرای برنامه شما هم ۱۰۰ برابر میشه. اگه مثلا زمان اجرای برنامه شما[tex]n^2[/tex] بود اگه وردی شما مثلا ۴ بود بعد زمان اجرای برنامه شما ۱۶ میشد حالا اگه ورودی رو شما ۸ میکردید زمان اجرای برنامه شما دیگه دوبرابر نمیشه میشه ۴برابر زمان قبلی یعنی ۶۴/

حالا چرا مثلا جمع ارایه میشه n؟ببیند تیکه کد اصلی که توی برنامه جمع ارایه استفاده میشه این هستش
(++for (i=0; i<num_elements; i
{
;[ sum = sum + a[i
}
(return(sum
یعنی عمل اصلیمون که هی داره تکرار میشه ;[ sum = sum + a[i این تیکه هست یعنی هی میره خونه iام ارایه رو از حافظه میخونه با sum جمع میکنه بعدی میره سراغ خونه ی بعدی حالا ما اگه n تا خونه داشته باشیم یعنی یه ارایه n عضوی این عمل n بار انجام میشه یه همین خاطر میگن از مرتبه n هستش.برای بقیه اون مثال هاتون هم به همین ترتیب که توضیح دادم هستش.
این چیزهایی که من گفتم خیلی به زبان ساده و بدون پشتوانه ریاضیش بود تقریبا که شما بفهمید جریان از چه قرار هستش اگه دقیق تر و بهتر میخواید مطالعه کنید میتونید برید سراغ منابع درسی مثل کتاب clsr و نیپولیتان و...
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.
لینک هم که میزارم دقیق تر و فرمال تر توضیح داده.
امیدوارم که متوجه شده باشید
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

fusion پاسخ داده:

RE: مرتبه ی اجرایی (پیچیدگی الگوریتم)

سلام و تشکر از دوستان گرامی توضیحات واقع عالی و ساده بود
من خیلی ضعف دارم تو این درس و مشکلات در دانشگاه هست مجبورم سر فصل بیام اینجا قرار بدم باتوجه که با دوستان
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.
بحث شد

تو فصل مربوط به الگوریتم ها ، محاسبه گام به گام الگوریتم بحث شده امکانش هست
این بحث تو ضحیات بدید

یکی از مثالها استاد این :
for(a=1) , a<=s;a++
printf(%d;a) ===> 1,2,3,4,5
نقل قول این ارسال در یک پاسخ



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
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