Цитата:
Сообщение от Akopalipsis
Меньше чем в этом. А тот где сравнивается с in лучше чем Ваш, быстрее в несколько раз.
|
вы сильно ошибаетесь в силу того, что не знаете как устроена работа indexOf.
запустите у себя код:

Код AS3:
var n:int = 1000000;
trace("N = " + n);
var array:Array = [];
for (var i:int = 1; i <= n; i++) {
array.push(i);
}
var rand:int = Math.random() * n;
var num:int = array.splice(rand, 1);
trace("Удалили число " + num);
array.sort(function(...args):int {
return Math.random() > 0.5 ? -1 : 1;
});
var t:Number = getTimer();
//1 способ
var value:Number = 0;
for (i = 1; i <= n; i++) {
value += i;
if (i - 1 < array.length) value -= array[i - 1];
}
trace("Удаленное число(1 способ) = " + value);
trace("time = " + (getTimer() - t));
t = getTimer();
//2 способ
for(i = 1; i <= array.length + 1; i++) {
if(array.indexOf(i) < 0) {
trace("Удаленное число(1 способ) = " + i);
trace("time = " + (getTimer() - t));
}
}