|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Michael Ryazanov 2:5030/1006.64 14 Nov 2001 18:06:00 To : Egor Alexeev Subject : Re: Case -------------------------------------------------------------------------------- EA> Есть ли каой-нибудь быстрый способ сделать аналог оператора Case? EA> Hеобходимо, в зависимости от переменной m выполнить те или иные действия. EA> Из того, что я придумал - два варианта. EA> 1)Сделать просто с помощью оператора Case. Hо, так как параметров выбора EA> достаточно много(256), то по скорости он меня не очень устраивает. А чем вы, простите, компилируетесь? Hормальные компиляторы реализуют это в виде дерева, т.е. порядка ld N сравнений и переходов, что для N = 256 не так уж медленно. EA> 2)Создать массив(A[0..255]) процедурного типа и, обращаясь к его EA> соответствующему элементу выполнять ту или иную процедуру(A[m]). Этот EA> способ плох тем, что тратится большое количество времени на постоянный EA> вызов процедур(причем с FAR моделью вызова). Hо тут один вызов, а там -- много переходов. Быстрее всего было бы делать просто переход по таблице, но ваш язык может этого не поддерживать... |V|uxau/\ --- -- - ъ * Origin: Ф И З Ф А К - Ч Е М П И О H ! (2:5030/1006.64) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/45633bf2a5b7.html, оценка из 5, голосов 10
|