当前位置: 首页 > news >正文

aspnet校友录网站开发ueditor 转wordpress

aspnet校友录网站开发,ueditor 转wordpress,比较放得开的几个直播平台,手机最全的网站python实现–顺序查找 python实现–折半查找 python实现–分块查找 python实现B/B树 B树和B树都是一种多路搜索树#xff0c;用于对大量数据进行排序和查找。它们在数据库系统中被广泛应用#xff0c;特别是用于构建索引结构。 B树#xff08;B-Tree#xff09; B树树 B树和B树都是一种多路搜索树用于对大量数据进行排序和查找。它们在数据库系统中被广泛应用特别是用于构建索引结构。 B树B-Tree B树又称多路平衡查找树B树中所有结点的孩子结点数的最大值称为B树的阶通常用m表示。一棵m阶B树或为空树或为满足如下特性的m叉树: 1树中每个结点至多有m棵子树即至多含有m-1个关键字。 2若根结点不是终端结点则至少有两棵子树。 3除根结点外的所有非叶结点至少有[m/2]棵子树即至少含有[m/2]-1个关键字 4所有叶子节点都在同一层。 5)每个节点中的关键字按照升序排列。 B树的优点包括 减少访问磁盘的次数B树的每个节点可以存储更多的关键字因此树的高度相对较低从而减少了访问磁盘的次数。 适应不同的数据规模B树可以根据数据规模动态调整节点大小适应不同的数据规模。 B树B-Plus Tree B树是在B树的基础上进行改进的一种树结构它与B树的区别在于 所有关键字都出现在叶子节点中而非内部节点。 内部节点仅用于索引不存储数据叶子节点包含了所有数据项。 B树的特点包括 叶子节点形成了有序链表可以支持范围查找和范围查询。 内部节点不存储数据只存储索引因此可以存储更多的关键字。 由于关键字只出现在叶子节点中因此B树的查找性能更加稳定。 B树和B树的比较 查询性能B树的查询性能通常优于B树因为B树的叶子节点形成了有序链表可以支持范围查询操作。 范围查询B树更适合范围查询操作而B树的查询效率相对较低。 数据存储B树的数据仅存储在叶子节点中而B树的数据可能分布在所有节点中因此B树更适合磁盘存储减少了节点的访问次数。 内部节点B树的内部节点可能包含数据而B树的内部节点仅用于索引不存储数据。 总结 B树和B树都是常用的多路搜索树结构在数据库系统中广泛应用。它们都具有平衡性和多路性的特点但在一些方面有所不同因此在实际应用中需要根据具体需求选择合适的树结构。 算法实现 B树的实现思路 定义B树节点类B树的节点需要存储关键字和子节点的信息。我们可以定义一个节点类其中包含关键字列表和子节点列表。 插入操作B树的插入操作需要保持树的平衡性。当插入一个关键字时需要根据B树的特性将关键字插入到合适的位置并可能进行节点的分裂和合并操作以维持B树的平衡性。 删除操作B树的删除操作也需要保持树的平衡性。当删除一个关键字时需要根据B树的特性对节点进行合并和移动操作以维持B树的平衡性。 class BTreeNode:def __init__(self, leafFalse):self.keys []self.children []self.leaf leafclass BTree:def __init__(self, t):self.root BTreeNode()self.t tdef insert(self, key):if len(self.root.keys) (2 * self.t) - 1:new_root BTreeNode()new_root.children.append(self.root)self.split_child(new_root, 0)self.root new_rootself._insert(self.root, key)def _insert(self, node, key):if node.leaf:i 0while i len(node.keys) and key node.keys[i]:i 1node.keys.insert(i, key)else:i 0while i len(node.keys) and key node.keys[i]:i 1if len(node.children[i].keys) (2 * self.t) - 1:self.split_child(node, i)if key node.keys[i]:i 1self._insert(node.children[i], key)def split_child(self, parent, index):t self.tchild parent.children[index]new_child BTreeNode(leafchild.leaf)parent.keys.insert(index, child.keys[t - 1])parent.children.insert(index 1, new_child)new_child.keys child.keys[t:]child.keys child.keys[:t - 1]if not child.leaf:new_child.children child.children[t:]child.children child.children[:t]def __str__(self):return self.print_tree(self.root)def print_tree(self, node, level0):ret if node:ret self.print_tree(node.children[-1], level 1)for i in range(len(node.keys) - 1, -1, -1):ret \n ( * level) str(node.keys[i])ret self.print_tree(node.children[i], level 1)return ret# 测试 btree BTree(2) keys [3, 7, 1, 4, 9, 2, 6, 5, 8] for key in keys:btree.insert(key) print(btree)B树实现讲解 BTreeNode类定义了B树的节点类包含关键字列表 keys 和子节点列表 children以及一个标志位 leaf 表示是否为叶子节点。 BTree类定义了B树类包含了B树的插入操作 insert、节点分裂操作 split_child以及辅助方法 _insert 和打印方法 print_tree。 insert方法首先判断根节点是否已满如果是则分裂根节点然后调用辅助方法 _insert 插入关键字。 _insert方法递归地在合适的位置插入关键字并在需要时进行节点分裂。 split_child方法分裂节点将中间的关键字提升到父节点并将节点分裂成两个节点。 B树的实现思路 定义B树节点类B树的节点需要存储索引信息和叶子节点指针。我们可以定义一个节点类其中包含关键字列表、子节点列表和叶子节点指针。 插入操作B树的插入操作与B树类似但是需要额外处理叶子节点之间的连接关系以保持叶子节点形成的有序链表。 删除操作B树的删除操作也与B树类似但是同样需要额外处理叶子节点之间的连接关系。 class BPlusTreeNode:def __init__(self, leafFalse):self.keys []self.children []self.next_leaf None # 指向下一个叶子节点self.leaf leafclass BPlusTree:def __init__(self, t):self.root BPlusTreeNode(leafTrue)self.t tdef insert(self, key):if len(self.root.keys) (2 * self.t) - 1:new_root BPlusTreeNode()new_root.children.append(self.root)self.split_child(new_root, 0)self.root new_rootself._insert(self.root, key)def _insert(self, node, key):if node.leaf:i 0while i len(node.keys) and key node.keys[i]:i 1node.keys.insert(i, key)else:i 0while i len(node.keys) and key node.keys[i]:i 1if len(node.children[i].keys) (2 * self.t) - 1:self.split_child(node, i)if key node.keys[i]:i 1self._insert(node.children[i], key)def split_child(self, parent, index):t self.tchild parent.children[index]new_child BPlusTreeNode(leafchild.leaf)parent.keys.insert(index, child.keys[t - 1])parent.children.insert(index 1, new_child)new_child.keys child.keys[t:]child.keys child.keys[:t - 1]if not child.leaf:new_child.children child.children[t:]child.children child.children[:t]def __str__(self):return self.print_tree(self.root)def print_tree(self, node, level0):ret if node:ret self.print_tree(node.children[0], level 1)for i in range(len(node.keys)):ret \n ( * level) str(node.keys[i])ret self.print_tree(node.children[i 1], level 1)return ret# 测试 bplustree BPlusTree(2) keys [3, 7, 1, 4, 9, 2, 6, 5, 8] for key in keys:bplustree.insert(key) print(bplustree)B树实现讲解 BPlusTreeNode类定义了B树的节点类与B树节点类相似但是多了一个指向下一个叶子节点的指针 next_leaf。 BPlusTree类定义了B树类与B树类相似但是插入和分裂操作需要额外处理叶子节点之间的连接关系。 insert方法与B树的插入操作类似但是需要在插入关键字时维护叶子节点之间的连接关系。 split_child方法与B树的节点分裂操作类似但是需要额外维护叶子节点之间的连接关系。
http://www.hkea.cn/news/14311721/

相关文章:

  • 小游戏网站网址彩票网站开发app
  • 做网站遇到各种问题网站建设实训计划书
  • 在网站上如何做天气预报栏wordpress投资主题
  • 安徽网站制作天价索赔背后的平台版权对垒
  • 驻马店 网站制作佛山设计网站公司
  • 自助建站凡科网高效简便的网站开发
  • 国家建设部网站查询做的比较好的海鲜网站
  • 响应式网站建设的应用场景seo薪资水平
  • 通州建设局网站wordpress网站好用吗
  • 免费炫酷企业网站源码网站开发相关职业岗位
  • 创建网站并制作首页教案福田蒙派克s
  • 厦门网站设计公司哪家好福建电商小程序厦门开发公司不懂英文怎么做英文的seo网站
  • flash xml网站模板建材在哪些网站做
  • 邢台网站建设的地方网站建设的核心
  • 企业网站建设技免费购物平台都有哪些
  • 免费网络推广网站图片加字在线制作
  • 赣榆哪里有做网站的大庆网站建设公司
  • 綦江网站建设公司网络营销是不是网络销售
  • 阿里云 万网 网站o2o电子商务平台有哪些
  • 网站影响seo的标签汉鼎中国 网站建设
  • 阿克苏交通建设局网站邯郸城融网络技术有限公司
  • 加强网站建设与管理的通知中国十大室内设计公司
  • 做网站用什么语言九九建筑网66kv架空线路设计视频讲座
  • 胶州网站建设哪里有保定网络运营公司
  • 合作网站开发公司学动漫制作很烧钱吗
  • 国外网站打开很慢陕西app定制
  • 手机网站制作推广福田公司是国企还是私企
  • 制作搜索类网站公司就我一个设计
  • 周村网站建设保险预约
  • 深圳住房建设部官方网站北京做兼职网站