گروه تلگرامی برنامه نویسان advertise ساخت اپلیکیشن آندروید و IOS و اپ ساز laitec sharif univercity
دانلود مجموعه 100 سورس ساده و ابتدایی با سی پلاس پلاس

دانلود مجموعه 100 سورس ساده و ابتدایی با سی پلاس پلاس

5000 تومان
دانلود سورس پروژه TSP با الگوریتم مورچگان Ants

دانلود سورس پروژه TSP با الگوریتم مورچگان Ants

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

دانلود مجموعه 70 پروژه مفید و کاربردی سی شارپ #C

9500 تومان
سورس پروژه پایانی آزمون گیری با زبان سی شارپ و SQL

سورس پروژه پایانی آزمون گیری با زبان سی شارپ و SQL

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

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

14000 تومان

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

ساختمان داده ی مورد استفاده توسط الگوریتم میتواند تاثیر شگرفی در کارایی الگوریتم داشته باشد، پس خوب است که از روشهای تحلیل کارایی ساختمان داده ها از جمله روش نشانه گذاری 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