|
|
زمان اجرای مرتب سازی درجی - نسخهی قابل چاپ |
|
زمان اجرای مرتب سازی درجی - Doctorwho - 28 شهریور ۱۳۹۲ ۰۱:۰۶ ب.ظ
با عرض سلام و خسته نباشیید در الگوریتم مرتب سازی درجی فرض کنید هر بار احرای خط i ام زمان [tex]c_{i}[/tex] صرف کند و [tex]c_{i}[/tex] ثابت است. همچنیین فرض کنید به ازای هر j=2,3,...,n تعداد اجرای حلقه ی while در خط ۵ برابر [tex]t_{j}[/tex] باشد زمان اجراش چقدر است. اگه ممکنه مرحله به مرحله توضیح بدهید و همچنیین توضیح مختصری در مورد اینکه چه چیزهایی هزینه و زمان اجرا هر خط ندارن و چه چیزهایی دارن رو ذکر کنید و روش بدست اوردن زمان اجرا هر خط چطوری است و درنهایت توضیح دهید چون بدترین حالت و بهترین حالت و حالت متوسط را در نظر میگیرید و زمان اجرای هر کدوم رو حساب میکنید و زمان اجراش برابر چند میشود. ببخشیید طولانی شد.باتشکر ![]() ![]() ![]() کد الگوریتم مرتب سازی درجی در پیوست قراردارد.
|
|
RE: زمان اجرای مرتب سازی درجی - SnowBlind - 28 شهریور ۱۳۹۲ ۰۱:۳۵ ب.ظ
شما قبول داری هر خط برنامه مثلا X بار اجرا میشه. حالا برای هر خط شما مقدار اجراشو بنویس: داریم کد: insertion-sort(A)این خط حلقه while بسته به این که key از چند تا از عناصر ۰ تا i کوچکتر باشه تکرار میشه که در بدترین حالت از همه ی اونا کوچیکتره که این حلقه i + 1 بار اجرا میشه و محتویات داخلش i بار اجرا میشه و در بهترین حالت از همه بزرکتر و میاد اول آرایه [tex]A[0\dots i][/tex] قرار میگیره که در کل حلقه دوبار و محتواب داخلش ۱ بار اجرا میشن و به صورت ریاضی داریم: [tex]T(n) = (n - 1) (n - 1) \sum _{j = 2}^{n} j \sum _{j = 2}^{n} (j - 1) [/tex] که اگه این سری ها رو حساب کنی میشه در نهایت یه چیزی از مرتبه [tex]O(n^2)[/tex] واسه حالت بهترین هم اون دوتا سری میشن: [tex]\sum _{j = 2}^{n} 1 [/tex] که اینا هم در نهایت میشن n و واسه Best case داریم [tex]T(n) = O(n)[/tex]. البته این انالیز ها خیلی نا دقیق هستن. |
RE: زمان اجرای مرتب سازی درجی - Doctorwho - 28 شهریور ۱۳۹۲ ۰۱:۴۵ ب.ظ
(۲۸ شهریور ۱۳۹۲ ۰۱:۳۵ ب.ظ)SnowBlind نوشته شده توسط: for j<-2 to n doاین جملات رو متوجه نشدم ![]() ![]() ممکنه ساده تر توضیح بدی باتشکر ![]() ![]() ![]()
|