Цитата:
Сообщение от elder_Nosferatu
На знаю как далеко зашли в оптимизации сортировки массивов, но те методы, которые я учил на уроках информатики в школьные годы не назовешь очень быстрыми... Короче, трудовой мозоль на пятой точке подсказывает мне, что плеер быстрее найдет свойство обьекта своими методами, чем вы будете его из-под палки заставлять сортировать ничем ему не интересный массив. Да и поиск свойства осуществляется максимум полным пребором все имеющихся свойств, а сортировку массива за один проход не сделаешь  . Плюс поиск предполагает только операцию сравнения, а сортировка - кроме сравнения еще и присваивание значения.
|
На
хабре пописывают про методики, обгоняющие стандартные методы ActionScript.
Говоря о сортировки я не имел в виду стандартных методов. У меня немножко другой подход со схожими алгоритмами.
В программе появилась ссылка, ее нужно по алфавиту вставить в массив (не сортировать весь массив! он уже сортируется в процессе сбора ссылок). Чтобы найти место для ссылки в сортированном индексном массиве из 1 млрд элементов достаточно 40 итераций. Или, как я выше выяснил, всего 1 проверку в ассоциативном массиве.
Чтобы собрать 1 млрд ссылок, нужно проводить проверки 115 суток...
Добавлено через 1 минуту
Цитата:
Сообщение от ChuwY
Совсем не долго выполняет.
Видимо, ошибка где-то еще.
Покажите ваш код.
|

Код AS3:
package
{
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class Main extends MovieClip
{
var startBut;
var links;
var massiv;
var massLink = [];
var obj:Object = new Object();
var e;
public function Main()
{
startBut = getChildByName('start');
startBut.addEventListener(MouseEvent.CLICK, writeMassiv);
links = getChildByName('links1');
massiv = getChildByName('massiv1');
}
public function writeMassiv(e)
{
while (links.text)
{
var currentLink:String = links.text.substring(0,links.text.indexOf('\r'));
links.text = links.text.substr(links.text.indexOf('\r') + 1);
massiv.text += currentLink + '\r';
if (!obj[currentLink]) obj[currentLink] = true
else (trace(currentLink, '- такая ссылка есть');
}
if (! links.text)
{
trace('ссылок нет');
}
}
}
}