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


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Andrew Ezhguroff                     2:5020/400     21 Jul 2001  03:13:12
 To : Yuriy Kaminskiy
 Subject : Re: найти ближайшую бОльшую степень двой  ки минус 1
 -------------------------------------------------------------------------------- 
 
 Привет! "Yuriy Kaminskiy" <Yuriy.Kaminskiy@p21.f517.n5020.z2.fidonet.org>
 сообщил(а) нам:
 
 >  MA> long long f(long long t) { while(t&(t+1)) t|=(t>>1); return t; }
 >  Хех. Оно, конечно, замечательно, только работает в 1.5 раза медленнее,
 > чем вариант AM (val |= val>>1;...;val |= val>>32;) [на cyrix 6x86MX].
 >  Ключевое слово - условный переход.
 
 Тут дело не только в условии цикла, но и в том, что в варианте АМ кол-во
 операций пропорционально логарифму длины числа (на первом шаге заносится 1
 единица, на втором - 2, на третьем - 4 и т.д.), а в варианте МА -
 пропорционально длине числа (в худшем случае на каждом шаге заносится 1
 единица).
 
 С уважением, Андрей.
 --- ifmail v.2.15dev5
  * Origin: COMSTAR Telecommunications (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Re: найти ближайшую бОльшую степень двой ки минус 1   Andrew Ezhguroff   21 Jul 2001 03:13:12 
Архивное /ru.algorithms/12168d783fc4d.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional