Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Case   Egor Alexeev   12 Nov 2001 22:03:49 
 Case   Sashka Yackubtchick   13 Nov 2001 23:00:03 
 Case   Egor Alexeev   14 Nov 2001 21:10:00 
 Case   Gerasimov Gerasim   15 Nov 2001 10:05:14 
 Re: Case   Michael Ryazanov   14 Nov 2001 18:06:00 
 Case   Egor Alexeev   17 Nov 2001 22:53:01 
 Re: Case   Michael Ryazanov   19 Nov 2001 21:20:00 
Архивное /ru.algorithms/45633bf2a5b7.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional