Quote:
Originally Posted by Mutha_X
Те, что в ядре сравнивают только пару переменных (у автора почти произвольное кол-во, ограниченное макс числом аргументов функции), хотя их всё-равно можно вставить в его код.
PHP код:
#define PROTECT_GETMAXMIN
GetIntMin(...) {
new i = numargs()-1;
#if defined PROTECT_GETMAXMIN
if(i==-1){return 0;}
#endif
new val = getarg(i);
while(--i) {val = min(val,getarg(i));}
return val;
}
GetIntMax(...) {
new i = numargs()-1;
#if defined PROTECT_GETMAXMIN
if(i==-1){return 0;}
#endif
new val = getarg(i);
while(--i) {val = max(val,getarg(i));}
return val;
}
В таком виде при большом кол-ве итераций должен быть выигрыш по времени выполнения, т.к. меньше операций с памятью в пределах p-кода... хотя стоит проверить.
SoNikMells, твой код будет неадекватным в случае, если будут заданы только отрицательные числа.
|
Твоя функция сфейлилась на [10, 0, -5], но у меня и SoNikMells сфейлились на [-10, -2, -5].