شنبه ۰۵ شهریور ۰۱ | ۱۴:۴۴ ۵ بازديد
میاقتدار بوسیله پیشپردازش طراحی اپلیکیشن اندروید قسمتهای رایا پارس اثبات لغات، پیش از رینگ ‘for’، از برخی محاسبات مازاد خودداری کرد.
x = 0;
a3c = a * a * a + c;
b2 = b * b;
for(i = 1; i <= n; ++i) {
x = x + 0.05;
y = a3c * x * x + b2 * x;
printf("%f, %f", x, y);
}
ارجاع عنصر آرایه
درصورتی که مراقب نباشید، ناکارآمدی همینطور قادر است سبب پردازش آرام آرایه گردد. دو طرز تحت را برای کشف کردن تعالیترین عنصر آرایه در حیث بگیرید:
v1.
pos = 0;
for (i = 1; i < arraySize; ++i) {
if (array[i] > array[pos]) {
pos = i;
}
}
max = array[pos];
v2.
pos = 0;
max = array[0];
for (i = 1; i < arraySize; ++i) {
if (array[i] > max) {
max = array[i];
pos = i;
}
}
به صورت معمول نحوه v2 پرکاربردتر میباشد، به دلیل آنکه امر (array[i] > max) نسبت به (array[i] > array[pos]) مقایسه مؤثرتری میباشد.
‘array[pos]’ به دو ارجاع یاد نیاز دارااست، آغاز مکانی برای آغاز ‘array’ و آن گاه فراهم کردن مقدار ‘pos’. علاوهبراین می بایست آرایه را برای خریداری نمودن nامین شرایط ‘pos’ در آرایه بپیماییم.
‘max’ صرفا به یک ارجاع یاد برای خریدن مقدار ذخیره گردیده نیاز دارااست.
ناکارآمدی به جهت دیر خاتمه یافتن:
فرض فرمائید یک لیست آراسته گردیده بر پایه ی حروف الفبا یا این که فرهنگ وتمدن لغت داریم و میخواهیم اسم خاصی را در آن پیدا کنیم. یک مثال ناکارآمد از پیادهسازی کاوش وقتی فیس می دهد که زمانی معین خواهد شد که اسم متبوع یافت نمی شود کاوش ادامه پیدا نماید، حتی بدتر از آن هنگامی میباشد که رینگ بعداز یافتن آن اسم نیز ادامه پیدا نماید.