advertise laitec sharif univercity تبلیغات در سایت سورس کد تبلیغات در سایت سورس کد
دانلود پروژه پایانی طراحی وب سایت مخابرات با Asp.net

دانلود پروژه پایانی طراحی وب سایت مخابرات با Asp.net

14000 تومان
دانلود پروژه مهندسی نرم افزار ، نمایندگی ایران خودرو

دانلود پروژه مهندسی نرم افزار ، نمایندگی ایران خودرو

3000 تومان
دانلود پروژه آموزش چندرسانه ای با دایرکتور Director

دانلود پروژه آموزش چندرسانه ای با دایرکتور Director

3000 تومان
دانلود PDF مجموعه 300 نکته جالب برنامه نویسی در سی شارپ #C

دانلود PDF مجموعه 300 نکته جالب برنامه نویسی در سی شارپ #C

3000 تومان
دانلود سورس n وزیر با جست وجوی ممنوع در سی شارپ #C

دانلود سورس n وزیر با جست وجوی ممنوع در سی شارپ #C

3000 تومان

تحلیل کارایی ساختمان داده ها

ساختمان داده ی مورد استفاده توسط الگوریتم میتواند تاثیر شگرفی در کارایی الگوریتم داشته باشد، پس خوب است که از روشهای تحلیل کارایی ساختمان داده ها از جمله روش نشانه گذاری O بزرگ و روش تست های زمانی استفاده کنیم
تحلیل کارایی ساختمان داده ها

تحلیل کارایی ساختمان داده ها

وقتی راجع به یک مسئله برنامه نویسی فکر میکنید، میخواهید الگوریتمی برای مسئله بنویسید که آن را با سرعت خوبی اجرا نماید. مثلا اگر میخواهید مقداری را در یک لیست 1000 عنصری پیدا کنید، الگوریتمی را برای این کار انتخاب میکنید که در زمان کمتری آنرا جست وجو نماید. اما این نکته را باید در نظر داشت که ساختمان داده ی مورد استفاده تاثیر زیادی در یافتن مقدار مورد نظر دارد. مثلا اگر، 1000 مقدار به جای آرایه در درخت جست وجوی دودویی سازماندهی شوند، میتوان الگوریتمی نوشت که در زمان متفاوت در آ رایه مقدار مورد نظر را جست وجو کند.

چون ساختمان داده ی مورد استفاده توسط الگوریتم میتواند تاثیر شگرفی در کارایی الگوریتم داشته باشد، مهم است که روش هایی وجود داشته بشند تا بتوان بوسیله آنها، ساختمان داده های مختلف را با هم مقایسه کرد. پس خوب است بدانیم که با افزایش تعداد مقادیر ذخیره شده در ساختمان داده ها، کاراریی آن چه تغییری میکند. به عبارت دیگر اضافه شدن هر عنصر به ساختمان داده ، چه تاثیری در زمان اجرای عملیات آن ساختمان دارد . برای پی بردن به پاسخ این پرسش میتوان از دو روش استفاده کرد:

  • روش نشانه گذاری O بزرگ
  • روش تست های زمانی

 

روشهای تحلیل کارایی ساختمان داده ها:

 

♦ نشانه گذاری O بزرگ برای تحلی کارایی

یک روش سنجش کارایی الگوریتم و در نتیجه ساختمان داده ، استفاده از نشانه گذاری O بزرگ است. نشانه گذاری O بزرگ برای توصیف کارایی جست وجوی ترتیبی در یک آرایه،  با O(n) نمایش داده میشود. n نشان میدهد که تعداد مراحل مورد نیاز برای جست وجوی مقداری در آرایه، با رشد اندازه آن، افزایش می یاید. این روش تحلیل را تحلیل مجانبی مینامند ، زیرا مشخص میکند که وقتی اندازه ساختمان داده به بی نهایت میل میکند، کارایی ساختمان داده چه تغییری میکند.

روش منظم برای محاسبه زمان اجرای مجانبی یک بلوک از کد (الگوریتم یا برنامه) بصورت زیر می باشد:

  1. مراحل موثر در زمان اجرای الگوریتم را تعیین کنید. همانطور که گفته شد، در مورد آرایه مراحلی که در نظر گرفته میشوند، شامل دستیابی به آرایه جهت خواندن و نوشتن آن است. برای ساختمان داده های دیگر ممکن است مراحل فرق کند. معمولا میخواهیم مراحلی را در نظر بگیریم که شامل خود ساختمان داده است و عملیات ساده ای را که توسط کامپیوتر انجام میشوند، در نظر نمیگیریم.
  2. خط یا خطوطی از کد که مراحل مورد نظر را اجرا میکنند، پیدا کنید و هر کدام از انها را 1 واحد در نظر بگیرید. (یعنی یک بار به تعداد دفعات اجرا اضافه کنید.)
  3. برای هر خطی که در مرحله 2 در نظر گرفتید، مشخص کنید که آیا در حلقه قرار دارد یا خیر. اگر در حلقه قرار داشت مقدار 1 را به حداکثر تعداد تکرار حلقه تبدیل نمایید. یعنی اگر حلقه n  بار اجرا میشود، آن دستور باید n بار تکرار گردد. اگر آن خط در داخل حلقه تودرتو باشد و هر دو حلقه n بار اجرا شوند،     n*n=n²    را خواهید داشت و اگر آن خط در داخل سه حلقه باشد،   n*n*n=n³   را خواهید داشت.
  4. بزرگترین جمله را انتخاب کنید. این جمله زمان اجرا را نشان میدهد.

 

♦ روش تست های زمانی برای تحلیل کارایی

تست های زمانی میتوانند اجرای کد را برحسب ثانیه یا سایر واحدهای زمانی در کامپوتر بیان کنند. در این روش مدت زمان لازم برای اجرای الگوریتم محاسبه میشود.

فرض کنید متدی بصورت زیر موجود است:

Static   void   outputArray (int[]  arr)

{

        for (int i = 0  ; i  <=  arr.Length  ;  i++)

                     Console.Write(arr[i]   +  “  “ );

}

 

برای محاسبه زمان این متد لازم است متغیری را ایجاد کنیم که زمان سیستم را در لحظه فراخوانی این متد نگه دارد. به متغیر دیگری نیاز داریم تا مدت زمان اجرای متد را نگه دارد:

DateTime  startTime;

TimeSpan  duration;

بدیهی است که duration برابر با تفاضل زمان سیستم در شروع اجرای متد و زمان سیستم در پایان اجرای متد است، یعنی:

startTime = DateTime .Now;

duration =  DateTime .Now.Subtract (startTime);

 

 



0
نظرات

نظر خود را ارسال کنید



نام:
ایمیل:
دیدگاه:
captcha
کد امنیتی :


advertise
نشانه گذاری O بزرگ برای تحلی کاراییتحلیل کارایی الگوریتم در ساختمان دادهتحلیل کارایی ساختمان داده چگونه است؟روشهای بررسی کارایی ساختمان داده هامعرفی روشهای تحلیل کارایی Data Structureتحلیل کارایی ساختمان داده ها چیست؟روش تست های زمانی برای تحلیل کاراییآشنایی با روشهای تحلیل کارایی Data Structure روشهای تحلیل کارایی ساختمان داده هاتبلیغات ارزان سایت آموزش برنامه نویسیتبلیغات مخصوص طراحان وب سایتتبلیغات در سایت برنامه نویسیتبلیغات اینترنتی برای برنامه نویساندر آغوش مینیمالیسممنوی همبرگر با سه خط افقی که روی یکدیگر قرار گرفته اند نشانه چیست؟ سوئیچ به یک ستون واحدتبدیل متن ساده به وبلاگ و سایت های پویا با React.jsکتابخانه sass برای استفاده آسان تر از آنکتابخانه سطح بالا برای اتوماتیک سازی اعمال مرورگر لیست برچسب ها
تمامی حقوق این سایت اعم از محتوی ، تصاویر ، قالب و ... متعلق به گروه مهندسی وب سایت سورس کد می باشد.
SourceCodes.ir ، افقی روشن برای برنامه نویسان ، از مبتدی تا حرفه ای

پیشنهادات ویژه سورس کد

پکیج ویژه پروژه پایانی رشته کامپیوتر دانلود مجموعه 70 پروژه کاربردی سی شارپ وب سایت فروشگاه با php