码迷,mamicode.com
首页 >  
搜索关键字:nlog    ( 1025个结果
Kth Largest Element in an Array
该题最直观的解决思路是先对数组进行排序,然后返回第k个元素即可,但是该方法的时间复杂度为 O(nlog(n)), 较高。比较高校的思路有两种:一种是堆排序的思路,一种是快拍的思路。         一、堆排序的思路。该思路设置容量为 k 的大顶堆,将剩余的元素每一个和堆顶元素进行比较,若比堆顶元素大则该元素必然不会是第 k 大的元素,直接处理下一个元素;若比...
分类:其他好文   时间:2015-08-29 17:04:59    阅读次数:126
RMQ(st在线算法模板)
#include #include #include using namespace std; #define M 100010 #define MAXN 500 #define MAXM 500 int dp[M][18]; /* *一维RMQ ST算法 *构造RMQ数组 makermq(int n,int b[]) O(nlog(n))的算法复杂度 *dp[i][j] 表示从i到i+2^j ...
分类:编程语言   时间:2015-08-18 22:56:29    阅读次数:188
nlog
分类:其他好文   时间:2015-08-17 16:59:03    阅读次数:130
spoj 1811 LCS - Longest Common Substring (后缀自动机)
spoj 1811 LCS - Longest Common Substring 题意: 给出两个串S, T, 求最长公共子串。 限制: |S|, |T| 思路: dp O(n^2) 铁定超时 后缀数组 O(nlog(n)) 在spoj上没试过,感觉也会被卡掉 后缀自动机 O(n) 我们考虑用SAM读入字符串B; 令当前状态为s,同时最大匹配长度为len;...
分类:其他好文   时间:2015-08-14 21:29:35    阅读次数:121
HDOJ 5372 Segment Game 树状数组+离散化
因为这题的线段长度是递增的....所以: 题解:对于新插入的线段,查询有多少个线段左端点大于等于该线段的左端点。 再查询有多少个线段的右端点大于该线段右端点, 两者之差就是答案。用两个树状数组搞定。时间复杂度nlog Segment Game Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536...
分类:编程语言   时间:2015-08-12 23:44:15    阅读次数:186
HDU 5372 线段树
给出两种操作: 第i个0:在x位置插入一个长度为i的线段,并输出该线段共覆盖了多少之前加入的线段 1:删除第i次插入的线段 官方题解:对于新插入的线段,查询有多少个线段左端点大于等于该线段的左端点。 再查询有多少个线段的右端点大于该线段右端点, 两者之差就是答案。用两个树状数组搞定。时间复杂度nlog 思路很好理解,直接用一个线段树记录区间的左端点和右端点即可 #include ...
分类:其他好文   时间:2015-08-12 17:01:05    阅读次数:123
NLog日志管理工具
Nlog是一个很不错的.NET日志记录组件,它可以将日志输出到控件台,保存到文本,也可以很方便的记录到数据库中,或者发送Emial到指定账户。可以在官网这里下载Nlog:http://nlog-project.org/如果想使用NuGet下载,可以使用Visual Studio(本人使用的Visua...
分类:其他好文   时间:2015-08-11 15:39:30    阅读次数:653
几种常见排序算法的总结
下面总结几种常见的排序算法,包括插入排序、选择排序、快速排序、归并排序和堆排序。时间复杂度:插入排序选择排序快速排序归并排序堆排序Ο(n2)Ο(n2)Ο(nlog(n))Ο(nlog(n))Ο(nlog(n))算法概述:插入排序:每次从未排好序的数据堆中拿出一个数,插入到已排好序的数据队列的正确.....
分类:编程语言   时间:2015-08-06 12:42:28    阅读次数:149
topK
最大K个数: 当数据量小时:快排和堆排O(Nlog(N));部分排序(选择or交换)O(N*K) 快排加分治O(N*log(K));二分查找当数据是整数且重复数比较多时:计数排序;若不是整数,则分区间计数。当数据量大时:1)小根堆:O(N*KlogK)2)分治法:hash成M份数据,取每份数据的前K...
分类:其他好文   时间:2015-07-11 22:46:10    阅读次数:194
找出一堆数中最小的前K个数
给定一个整数数组,让你从该数组中找出最小的K个数 思路: 最简洁粗暴的方法就是将该数组进行排序,然后取最前面的K个数即可。但是,本题要求的只是求出最小的k个数即可,用排序可以但显然有点浪费,比如让求10000个整数数组中的最小的10个数,用排序的话平均时间复杂度差为Nlog(N)。 于是想到了,用堆来实现,但是自己实现又太麻烦,想到了java里面的TreeSet,先将K个数放入TreeSet中,由于TreeSet会对里面的元素进行排序,所以在TreeSet中的元素是有序的,以后没插入一个元素,将TreeSe...
分类:其他好文   时间:2015-07-01 12:24:55    阅读次数:153
1025条   上一页 1 ... 93 94 95 96 97 ... 103 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!