XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
ZeToX2007

offline
Опыт: 7,009
Активность:
if Else
1 вариант.
local integer i = 5


function hz takes integer i return nothing

if i == 0 then
действия
ifelse i == 1 then

действия
ifelse i == 2 then

действия
ifelse i == 3 then

действия
ifelse i == 4 then

действия
и тд


или юзать бинарный поиск ? О_о могу ошибится, сделаю его по проще.


function bpoick takes integer i return nothing

if i > 2 then

if > 1 then
функции номер 2
return
endif
функции номер 1
return
endif
else

if == 4 then
функции номер 4
return
endif
функции номер 3
return

endif

При больших количества эллементов, структура будет менятся
Старый 31.08.2009, 22:18
FREEZE_ball
Cataclysm => жара
offline
Опыт: 15,247
Активность:
Не понимаю, к чему эта тема, но ifelse меняй на elseif. Или можно и так и так? о_О Впервые слышу.
Старый 31.08.2009, 22:23
ScorpioT1000
Работаем
offline
Опыт: отключен
что за ifelse?
Старый 31.08.2009, 22:26
ZeToX2007

offline
Опыт: 7,009
Активность:
Цитата:
Сообщение от ScorpioT1000
ifelse

ой, elseif )

ZeToX2007 добавил:
так что? 2 вариант будет быстрее ?
Старый 31.08.2009, 22:33
ScorpioT1000
Работаем
offline
Опыт: отключен
это кстати на деревья смахивает :)
ScorpioT1000 добавил:
тока я так и не понял, у тебя во втором вобще фигня какаято
Старый 31.08.2009, 22:39
ZeToX2007

offline
Опыт: 7,009
Активность:
Цитата:
Сообщение от FREEZE_ball
Или можно и так и так? о_О Впервые слышу.

в cJass можно и так )) (если кое что сделать)

Цитата:
Сообщение от ScorpioT1000
тока я так и не понял, у тебя во втором вобще фигня какаято

Да фигня) но впринцыпе ты меня понял ?
Старый 31.08.2009, 22:47
ScorpioT1000
Работаем
offline
Опыт: отключен
я думал, что бы будешь делать ветвления, подобные бинарным деревьям, но ошибся
т.е. не понял :)
Старый 31.08.2009, 23:14
ZeToX2007

offline
Опыт: 7,009
Активность:
ScorpioT1000, Смотри, у нас есть 16 функций и integer, если integer = 10 запускается 10 функция )

смотри, сначало i проверяется, больше ли она 8, если да, проверяется больше она 12, если нет, проверяется меньше она 10, если нет запускается 10-ая функция)

http://ru.wikipedia.org/wiki/%D0%91%D0%B8%D0%BD%D0%B0%D1%80%D0%BD%D1%8B%D0%B9_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA
Старый 31.08.2009, 23:27
ScorpioT1000
Работаем
offline
Опыт: отключен
сам то понял, что написал?)
ScorpioT1000 добавил:
в любом случае, для ~250 элементов это не имеет значения
Старый 31.08.2009, 23:29
ZeToX2007

offline
Опыт: 7,009
Активность:
ScorpioT1000, Не совсем ) подредоктировал )

Цитата:
Сообщение от ScorpioT1000
250 элементов это не имеет значения

256 допустим О_о

обычным методом у нас будет около 128 проверок за 1 раз(В СРЕДНЕМ)

этим ровно 8.
Старый 31.08.2009, 23:32
ScorpioT1000
Работаем
offline
Опыт: отключен
ну это для интежер, а если у тебя стринг? то придется либо по gethandleid, либо хранить для них всех интовые ключи
Старый 31.08.2009, 23:35
ZeToX2007

offline
Опыт: 7,009
Активность:
Стринги медленны.... да и причём тут это

и если бы vJass компилировался также, то был бы он быстрей)
Старый 31.08.2009, 23:53
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
Офк при большом количестве и приблизительно равной вероятности элементов бинарный поиск будет быстрее простого перебора. Иначе надо смотреть на вероятности выбора различных значений и более вероятные ставить раньше.
Старый 01.09.2009, 00:13
ZeToX2007

offline
Опыт: 7,009
Активность:
Цитата:
Сообщение от Van Damm
и

и или или ? о_О
Старый 01.09.2009, 10:53
adic3x

offline
Опыт: 108,439
Активность:
жалко в жасс нельзя делать jump таблицы
Старый 01.09.2009, 10:57
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 18:03.