"Искусство программирования" (задача 3)
vimmax:
BODROV - Ответ#9 - Правильный ответ, самый быстрый. Скорость в ущерб памяти :) +1.
Sochin - Ответ #7 - интересно было-бы посмотреть реализацию с хеш-таблицами и бинарным деревом.
BODROV:
Цитата: vimmax от Февраль 16, 2007, 06:07:00
BODROV - Ответ#9 - Правильный ответ, самый быстрый. Скорость в ущерб памяти :) +1.
:rofl:
супер!!! в ущерб не только памяти, но психичекого состояния программера... я б после заполнения матрицы а точно двинулся бы :D
вообже такой вариант еще вчера появлялся, но я его отбросил, как ответ абсурдней абсурдного ::)
Sochin:
Цитата: vimmax от Февраль 16, 2007, 06:07:00
Sochin - Ответ #7 - интересно было-бы посмотреть реализацию с хеш-таблицами и бинарным деревом.
Вот так с помощью хэша можно искать для целых или скажем для строк(C#):
Код:
public class BitCounter
{
static BitCounter()
{
hash.Add(0, 0);
hash.Add(1, 1);
hash.Add(2, 1);
hash.Add(3, 2);
...
hash.Add(65535, 16);
hash.Add("0", 0);
hash.Add("1", 1);
hash.Add("2", 1);
hash.Add("3", 2);
...
hash.Add("65535", 16);
}
static Hashtable hash = new Hashtable();
public static int Count(object x)
{
if (hash.Contains(x)) return (int) hash[x];
return 0;
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Кол-во единиц: {0:D}", BitCounter.Count(3));
Console.WriteLine("Кол-во единиц: {0:D}", BitCounter.Count("3"));
Console.ReadLine();
}
}
Кстати насчет абсурдности идеи как таковой, индексы в СУБД MS SQL Server предназначены для ускорения поиска и представляют собой ничто иное как сбалансированные деревья.
mars:
Цитата: Archangel от Февраль 16, 2007, 11:59:01
Ставишь мультиплексоры, а после них счетчики:). Работать будет быстрее всего остального.
Очень хотелось бы схемку с мультиплексором увидеть ....
хе-хе
Навигация