constant amortized یعنی چی ؟ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

constant amortized یعنی چی ؟

+2 امتیاز
معنی constant amortized چی هست ؟

 و آیا این که  یک الگوریتم (1)O باشه با این که constant amortized باشه تفاوتی داره ؟

مثلا میگیم push_back داخل وکتور

یا دسترسی به عناصر داخل hash table از نوع constant amortized هست یعنی مرتبه زمانیشون (1)O هست ؟ یا معنی متفاوت هست  ؟
سوال شده شهریور 30, 1393  بوسیله ی َAI (امتیاز 200)   13 19 30
دوباره تگ گذاری شد مهر 4, 1393 بوسیله ی BlueBlade

1 پاسخ

+4 امتیاز
 
بهترین پاسخ

 Amortized Analysis یعنی زمان انجام تمام حالت های یک الگوریتم خاص رو محاسبه کنیم بعد میانگین بگیریم .

 

Constant Amortized یعنی این که میانگین  همه عملیات ها زمان ثابتی می گیره و زمان اجرا ربطی به سایز ورودی  نداره.

 

در وکتور push_back به این شکل عمل می کنه که آرایه ای که مقادیر داخلش ذخیره میشن اگر جای کافی نداشته باشه ما یک آرایه جدید با 2 برابر سایز فعلی میسازیم و عناصر رو به اون منتقل می کنیم(که این عملیات زمان گیر هست و از (O(n هست) ولی اگر جای کافی داشته باشیم دیگه گرفتن حافظه انجام نمیشه و فقط عنصر اضافه میشه که از مرتبه  (1)O میشه . اگر از این عملیات ها میانگین بگیریم عدد ثابت ای بدست میاد که ربطی به اندازه وکتور نداره .

 

پس وقتی می گیم push_back  از توع constant Amortized هست یعنی بطور میانگین در وکتور عملیات push_back از (1)O هست و زیاد شدن اندازه وکتور در مدت زمان انجام n تا push_back تاثیری نمیزاره..

پاسخ داده شده شهریور 30, 1393 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
انتخاب شد مهر 4, 1393 بوسیله ی َAI
تفاوت amortized analysis با average case
...