![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Ваша проверка делает абсолютно то же самое.
Только утверждение там обратное. "Если такого свойства нет". И скорость гораааздо больше, чем вы пишете. И нет. Там не перебор.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ" Мои ачивки: художник-паразит. |
|
|||||
|
Цитата:
![]()
__________________
Мой профиль на фрилансе |
|
|||||
|
На знаю как далеко зашли в оптимизации сортировки массивов, но те методы, которые я учил на уроках информатики в школьные годы не назовешь очень быстрыми... Короче, трудовой мозоль на пятой точке подсказывает мне, что плеер быстрее найдет свойство обьекта своими методами, чем вы будете его из-под палки заставлять сортировать ничем ему не интересный массив. Да и поиск свойства осуществляется максимум полным пребором все имеющихся свойств, а сортировку массива за один проход не сделаешь
. Плюс поиск предполагает только операцию сравнения, а сортировка - кроме сравнения еще и присваивание значения. |
|
|||||
|
Блин, точно не перебор. А так долго выполняет... Значит, как бы я не исхищрялся, все равно быстрее, чем мгновенный доступ к свойству я не придумаю... Эх!
__________________
Мой профиль на фрилансе |
|
|||||
|
Совсем не долго выполняет.
Видимо, ошибка где-то еще. Покажите ваш код.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ" Мои ачивки: художник-паразит. |
|
|||||
|
Цитата:
Говоря о сортировки я не имел в виду стандартных методов. У меня немножко другой подход со схожими алгоритмами. В программе появилась ссылка, ее нужно по алфавиту вставить в массив (не сортировать весь массив! он уже сортируется в процессе сбора ссылок). Чтобы найти место для ссылки в сортированном индексном массиве из 1 млрд элементов достаточно 40 итераций. Или, как я выше выяснил, всего 1 проверку в ассоциативном массиве. Чтобы собрать 1 млрд ссылок, нужно проводить проверки 115 суток... ![]() Добавлено через 1 минуту 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('ссылок нет'); } } } }
__________________
Мой профиль на фрилансе |
|
|||||
|
Цитата:
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
|
Ну вы же понимаете, наверное, что в приведенном вами коде indexOf и substring кушают раз в 100 больше времени, чем поиск свойства?
А с учетом количества их вызовов... Вот вам другой простенький тест. (хотя тут генерация ключа более-менее жручая) package { import flash.display.Sprite; public class test2 extends Sprite { private static const NUM_KEYS:int = 150000; private var _hash:Object = {}; public function test2() { fill(); check(); } private function check():void { for(var i : int = 0; i < NUM_KEYS; i++) { var key:String = generateKey(); if(key in _hash) { trace("bingo! " + key + " exist"); } } } private function fill():void { for(var i : int = 0; i < NUM_KEYS; i++) { var key:String = generateKey(); _hash[key] = true; } } private function generateKey():String { var key:String = ""; for(var i : int = 0; i < 3; i++) { key += int(Math.random() * 100); } return key; } } }
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ" Мои ачивки: художник-паразит. |
|
|||||
|
Понятно. Запомнил. Мне все равно нужно какие-то времязатратные действия производить. Буду смотреть, оптимизировать остальное.
__________________
Мой профиль на фрилансе |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|