lzhenf

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2011年12月15日

摘要: n由于两个子线段是尽量平均的,因此长度为N的线段树的深度为O(logN)。n给定一个叶子p, 从根到p路径上所有结点(即p的所有直系祖先)代表的线段都包含点p, 且其他结点代表的线段都不包含点p。n对于每个线段,都可以看作O(logN)条线段的并,且每两条线段间不存在公共部分。(分治思想)线段树的写法:/*线段树的基本结点结构,[l,r]表示这个结点所代表的线段,left和right分别指向左右儿子。*/ struct node { int l, r; node *left, *right; // something else};线段树建立 :node* build(int l,int ... 阅读全文
posted @ 2011-12-15 11:21 lzhenf 阅读(229) 评论(0) 推荐(0) 编辑

摘要: 1 /* 2 K路归并排序 , 3 主要思想 : 4 建立K路链表 , 在K路的最小元素提取出来 。 5 存储到 result数组中 , 利用result数组构造最小堆 , 6 每次取出堆顶的元素 , 在把取出的元素的那路的next填充到堆顶中, 重新维持堆特性 7 通过每次取出堆顶 ,知道K路链表均被取完 ,完成归并排序 8 */ 9 #include <stdio.h> 10 #include <algorithm> 11 #include <memory.h> 12 13 using namespace std; 14 //定义链表节点 15 stru 阅读全文
posted @ 2011-12-15 11:01 lzhenf 阅读(1613) 评论(0) 推荐(0) 编辑