![]() |
Оптимизация сортировок и выборок.
Народ а может кто нить кинуть ссылок на статьи по сравнительным скоростям сортировок и выборок в массивах и векторах?
Ситуация такая: Есть tiles:Vector.<Vector.<Tile>> , где Tile - это класс тайл игрового поля. У каждого экземпляра Tile есть свойство state:uint (0-4) Мне нужно выбрать из массива tiles выбрать все элементы Tile со state == 3, например. При обычном поиске это сильно грузит процессор. Также пробовал переложить все содержимое в одномерный массив и делал sotrOn то тоже очень тормозит. Основная проблема, что iles:Vector.<Vector.<Tile>> — это 2-мерный вектор 350*350 элементов и каждый весит около 2кб. |
Я бы делал все таки одномерным вектором.
Для выборок можно создать несколько масивов, в которых хранить тайлы с одинаковым значением state Сортировать можно QuickSort'ом, реализации есть в интернете Насчет веса элемента - не совсем понятно, какое это имеет значение? |
Использовать Vector.filter, например:
Код AS3:
|
потому что при создании и добавлении элементов в массив создается его копия с новым элементом а потом удаляется старая, ибо память под массив резервируется и он является в ней неразрывным. И 350*350*2кб = 240mb памяти.
Добавлено через 2 минуты Цитата:
|
Цитата:
|
Preprocessing, preprocessing, preprocessing (c), N-author`s.
Я не думаю, что господа Тайлы изменяются с частотой раз в секунду. Перед началой игры можно запомнить эти массивы уже отфильтрованные. |
Цитата:
Добавлено через 5 минут Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Интересно, спасибо. Только не понял - чем и где определяется момент?
|
| Часовой пояс GMT +4, время: 16:53. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.