问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

笛卡尔树的笛卡尔树的实现

发布网友 发布时间:2022-05-02 06:41

我来回答

1个回答

热心网友 时间:2022-06-29 05:11

①排序之后直接构造笛卡尔树的方法:
首先将节点序列按照key从小到大排序,然后按照顺序插入节点,注意到排序之后,插入的节点的key值一定是树中最大的,所以只需查找最右端的路径,找到一个节点A[i]的value大于待插入节点的value,同时A[i]->right的value小于待插入节点的value。找到之后,只需将A[i]的right指向待插入的节点,A[i]的right原来指向的节点赋值给待插入节点的left指针。注意到查找最右路径的方向,如果从下到上查找,复杂度比较容易分析O(N)(因为查找过的节点必然会旋转到某个节点的左子节点,因此每个查找过的节点只会被查找一次),如果从上倒下,比较复杂(和最右端的最终的路径长度有关吧),会超过N,甚至更高,可能为O(N^2)。
②利用排序加左旋的方法:
就是一样先排序,然后使用treap插入节点,可以发现,所有的旋转都为左旋。这种方法也TLE了,这种方法有一个很重要的意义,就是分析了上个方法中从上到下扫描的复杂度。因为这两种方法的效率是等价的,都TLE。 我们将要将A的元素依次插入笛卡尔树C。每次插入都可能使树的形态发生变化。为了在O(N)的时间内完成整个插入过程,考虑C的右链,即根结点、根结点的右儿子、根结点的右儿子的右儿子……组成的链。注意这些元素的下标和值都是递增的。下标最大,即将要插入的元素A[i]一定是新树右链的最后一个元素。原来的右链中,值比A[i]大的元素在新树中不再属于右链,这些元素组成的链成为A[i]的左子树的右链;原来右链中的其它元素加上A[i]组成了新的右链。初看起来,寻找分界点的最佳方法是O(logN)时间的二分查找;但是对于整个过程来说,O(NlogN)的时间复杂度不是最优的。关键在于一旦一个元素比A[i]大,它就从右链中被永久地移除了。如果按照从后到前的顺序判断一个元素是否大于A[i],则每次插入的时间复杂度为O(k+1),k为本次插入中移除的右链元素个数。因为每个元素最多进出右链各一次,所以整个过程的时间复杂度为O(N)。
用一个栈结构维护右链元素的下标,上述过程可以很容易地实现。(见下面代码部分)

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
金丝熊,一般吃什么啊?水果还是蔬菜? 怎样管理wp7上安装的软件?我手机是三星i917 》有文件管理软件吗?、我的... 二片式球阀(关于二片式球阀的基本详情介绍) 二片式球阀工作原理 二片式球阀优点 不锈钢二片式球阀安装与维护及注意事项 二片式球阀两片式球阀的结构特点 不锈钢二片式球阀结构特点 不锈钢二片式球阀简介 吃刚出炉的蛋糕致癌? 关于"知识"的名言警句 歇后甜蜜他妈给甜蜜开门,甜蜜到家了,后半句是什么 漂亮她妈给漂亮开门漂亮到家了。是什么意思? 有关知识的名言有哪些? 笛卡尔树的介绍 知识就是力量原文 笛卡尔树的笛卡尔树简单介绍 笛卡尔树的笛卡尔树定义 无语他妈给无语开门无语到家了类似的句子有哪些? 请问如何查询Oracle数据库中的死锁总数?在哪个视图或者表中可以看到 华为手机设闹钟怎么设置 MyEclipse转成中文版 MyEclipse 8.5 中文转换! 铁甲威龙车膜 我想问下汽车改色膜生产工厂在广州哪里? 别人送来很多粽子 是包好的但是是生的 我现在不想吃 今晚是蒸出来还是生着放着 怎么保存啊? 广州汽车贴膜在哪里更可靠?3m或者雷朋的前挡风多少钱? 威途车膜怎么样,贴全车? 广州汽车车身贴膜去哪里比较实惠? 汽车膜哪家好 笛卡尔的主要成就 歇后语可怜妈妈给可怜开门,下一句是什么 笛卡尔树细节问题 关于"知识"的名言 108个名人名言 什么熊他妈给熊开门熊到家了 知道得什么填上合适的词语 自信tm给自信开门什么意思? 关于“善意的谎言”是我们需要的这方面的名人名言,以及3-4个著名的事例(最好有姓名) 语文手抄报,有三个指令题目,其中一个是名人名言ToT。求关于语文的名人名人 笛卡尔的智慧的目录 为什么要学数学? 关于知识宝贵的活 新华保险贷款利息多少 新华保险利息是多少 新华保险利息是多少钱 我想应新华保险贷款能贷多少,利息是多少 新华保险年化利率是多少钱 2019年新华保险利率是多少钱 新华保险最新利率计算