Одну из самых востребованных на рынке структур данных: "массив" можно получить в CL с помощью функции make-array. В принципе, зачастую этой информации достаточно для успешного и счастливого применения массивов в практике.
Но если копнуть немного поглубже, неожиданно выясняется, что, в зависимости от переданных параметров, make-array умеет
(
Read more... )
Нельзя ли сделать более приличный вектор как в скале и кложуре (32-арное дерево) и, пользуясь динамиченостью лиспа, сделать так, чтобы он везде использовался вместо того медленного вектора?
Reply
А зачем дерево для вектора, если вся фишка вектора в O(1) доступе?
Reply
Reply
Reply
Reply
Reply
У нас дерево, где все ветви одной длины. В самом низу, в листьях, unboxed массивы по 32 значения, например int[32]. В узлах выше unboxed массивы по 32 указателя вниз. Плюс отдельно несколько общих переменных - высота дерева, начало, конец. Оверхед ~ 1/32 + (1/32)^2 + (1/32)^3...
Reply
Leave a comment