摘要: 1.数组大小为Max > 1; build(lson); build(rson); PushUP(rt); } 4.更新节点 void update(int p, int add, int l, int r, int rt) { if (l == r) { sum[rt] += add; return ; } i... 阅读全文
posted @ 2016-09-08 22:31 筱陌 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 时间复杂度:O(2(n + k)) == O(n); 没多大用处的排序算法, a.只能对正数排序. b.主要对批量小数据有用, 极易因k值过大导致MLE c.个人能力原因,此排序算法的代码并不能优雅的写出来. d.内存浪费严重, 好在时间复杂度不高(目前最低!?), 没多大实用价值。 对一些地方的解 阅读全文
posted @ 2016-09-08 10:44 筱陌 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 分治策略的应用,程序易懂易编写,不要说一个sort完事,这里是介绍算法不是介绍偷懒,不过我的版本在用随机数优化之前运行效率确实比不上sort.... 此算法的思想可用于求无序数列中第k大的数,时间复杂度为O(logn). 2017年10月25日00:13:51 更新: 为什么要倒着写!!!!! | 阅读全文
posted @ 2016-09-08 10:43 筱陌 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 一种不是很稳定的算法,胜于容易理解,模拟扑克牌手牌排序(某猿至今不会打牌……) 阅读全文
posted @ 2016-09-08 10:42 筱陌 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 递归的初级应用,可类比到线段树的建树过程,一个比较简略版本的代码不知被我扔哪去了,见到后再补充(((φ(◎ロ◎;)φ))) 阅读全文
posted @ 2016-09-08 10:42 筱陌 阅读(79) 评论(1) 推荐(0) 编辑
摘要: 通过维护一个大根堆/小根堆来实现数组元素的排序,优点是维护步骤容易理解,其涉及的一些细节操作会对线段树的书写多少有写辅助。 此代码的缺陷:swap函数并不用手写,节点编号用i << 1、i << 1 | 1 来计算可多少加快一点运算速度。 阅读全文
posted @ 2016-09-08 10:42 筱陌 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序的小范围优化(我实在不知道冒泡怎么写了,所以可能会有误解, 欢迎指正) 阅读全文
posted @ 2016-09-08 10:41 筱陌 阅读(138) 评论(0) 推荐(0) 编辑
摘要: (经同学指正我才知道, 我之前写的冒泡原来是选择....不想改了, 不会冒泡就不会了吧.o(︶︿︶)o) 比较排序算法的基础,奠定了此类算法的时间复杂度基数 阅读全文
posted @ 2016-09-08 10:40 筱陌 阅读(121) 评论(0) 推荐(0) 编辑