Treap树算是一种简单的优化策略这洺字大家也能猜到,树和堆的合体其实原理比较简单,在树中维护一个"优先级“”优先级“
采用随机数的方法,但是”优先级“必须滿足根堆的性质当然是“大根堆”或者“小根堆”都无所谓,比如下面的一棵树:
①:节点中的key满足“二叉查找树”
②:节点中的“優先级”满足小根堆。
一棵treap是一棵修改了结点顺序的二叉查找树如图,显示一个例子通常树内的每个结点x都有一个关键字值key[x],另外還要为结点分配priority[x],它是一个独立选取的随机数
假设所有的优先级是不同的,所有的关键字也是不同的treap的结点排列成让关键字遵循二叉查找树性质,并且优先级遵循最小堆顺序性质: