Изменения

Перейти к: навигация, поиск

Сжатое многомерное дерево отрезков

32 байта добавлено, 20:14, 22 января 2017
Псевдокод
<br>
===Псевдокод===
'''build_subarray_tree'''(element[] array):
<font color=green>//построение одномерного дерева отрезков на массиве array с сохранением подмассива в каждой вершине </font>
'''build_normal_tree'''(element[] array):
<font color=green> //построение обычного одномерного дерева отрезков на массиве array </font>
'''get_inside_array'''(vertex v):
<font color=green>//получение подмассива, сохраненного в вершине vertex </font>
'''build_compressed_tree'''(element[] array, '''int ''' coordinate = 1): <font color=green>//рекурсивная процедура построения сжатого дерева отрезков</font> '''if''' (coordinate < p)
sort(array, coordinate); <font color=green>//сортировка массива по нужной координате </font>
segment_tree = build_subarray_tree(array);
'''for''' each (vertex v '''in ''' segment_tree)
build_compressed_tree(inside_array(v), coordinate + 1);
'''if''' (coordinate == p)
sort(array, coordinate);
build_normal_tree(array);
133
правки

Навигация