码迷,mamicode.com
首页 >  
搜索关键字:时间复杂度    ( 8884个结果
排序算法学习之堆排序
一、堆与堆排序的产生及定义 在简单选择排序中,每次从n个元素中比较n-1次选取最小的元素,这很好理解,但是前面比较过的数据在之后还要重新比较,这将花费大量的运算时间。堆排序算法就很好的解决了这个问题,堆排序在每次选择到最小记录的同时会根据比较结果对其他数据进行调整,堆排序的时间复杂度为O(Nlog....
分类:其他好文   时间:2014-05-10 00:25:14    阅读次数:299
HDU 4717 The Moving Points(三分)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4717 思路:第一次写三分法,原理和二分法其实是一样的,计算过程两边for,时间复杂度为O(n^2log(n)) 代码: #include #include #include const double eps = 1e-6; const int N = 305; #define max(a...
分类:其他好文   时间:2014-05-09 21:11:49    阅读次数:359
计数排序(counting_sort) 算法分析
线性排序的一种(时间复杂度为(n)) 计数排序(Counting sort)是一种稳定的排序算法。计数排序使用一个额外的数组C,其中第i个元素是待排序数组A中值等于i的元素的个数。然后根据数组C来将A中的元素排到正确的位置。 计数排序的特征 当输入的元素是 n 个 0 到 k 之间的整数时,它的运行时间是 Θ(n + k)。计数排序不是比较排序,排序的速度快于任何比较排序算法。 由于用...
分类:其他好文   时间:2014-05-09 21:05:32    阅读次数:309
高效编程之cache命中对于程序性能的影响
下面这个代码用两个双层循环遍历了一个二维数组里所有的元素,以我自己机器的测试 上面那个循环耗时基本为下面的一半,两个循环的时间复杂度相同,为什么会有这么大的差别?首先要明白的是不管是几维数组,他们都是用一块地址连续的内存来存储所有的元素,而内存布局的顺序是一整行接着下一个整行排列,第一个循环是一行一...
分类:其他好文   时间:2014-05-08 18:31:26    阅读次数:289
递归方程时间复杂度计算公式
对于T(n)=a*T(n/b)+c*n^k;T(1)=c的递归关系,有如下结论:if(a>b^k)T(n)=O(n^(logb(a)));if(a=b^k)T(n)=O(n^k*logn);if(ab^k故:T(n)=O(n^(logb(a)))=O(n^2)对于:T(n)=T(n/2)+cn^3a...
分类:其他好文   时间:2014-05-08 00:39:32    阅读次数:930
Randomize select algorithm 随机选择算法
从一个序列里面选择第k大的数在没有学习算法导论之前我想最通用的想法是给这个数组排序,然后按照排序结果返回第k大的数值。如果使用排序方法来做的话时间复杂度肯定至少为O(nlgn)。问题是从序列中选择第k大的数完全没有必要来排序,可以采用分治法的思想解决这个问题。Randomize select 算法....
分类:其他好文   时间:2014-05-07 19:23:35    阅读次数:394
员工年龄排序
对公司所有员工的年龄进行排序,公司总共有几万名员工,要求时间复杂度为O(n)。 很明显的计数排序题目,员工的年龄肯定在一个范围之内,我们这里假设在0-99之内,算很大了,这样就可以开辟一个长度为100的数组,保存各个年龄的员工的个数。...
分类:其他好文   时间:2014-05-07 15:35:12    阅读次数:286
Kruskal
算法描述:克鲁斯卡尔算法需要对图的边进行访问,所以克鲁斯卡尔算法的时间复杂度只和边又关系,可以证明其时间复杂度为O(eloge)。算法过程:1.将图各边按照权值进行排序2.将图遍历一次,找出权值最小的边,(条件:此次找出的边不能和已加入最小生成树集合的边构成环),若符合条件,则加入最小生成树的集合中...
分类:其他好文   时间:2014-05-07 13:16:32    阅读次数:290
wikioi-1748 瑰丽华尔兹 -单调队列优化DP
根据题意,很明显可以推出DP方程。 假如只考虑向左的方向: dp[t][i][j]:  第t个时间段末滑行到i,j最长滑行的距离。 dp[t][i][j]=dp[t-1][i][1..k]+(j-k)=dp[t-1][i][1..k]-k+j(k 最终时间复杂度为O(n*m*k) #include #include #include #include #include using nam...
分类:其他好文   时间:2014-05-07 04:49:13    阅读次数:363
经典排序算法
数值算法:解方程、微积分、数值分析   多用在工程设计 非数值算法:搜索、排序、拆分、合并   多用在系统   一、线性搜索 1.算法 1.1从头开始,依次将每一个元素与查找目标进行比较 1.2或者找到目标,或者找不到目标 2.评估 2.1平均时间复杂度:O(N),线性时间 2.2对数据没有任何规律性要求   穷举法   二、二分搜索(折半搜索) 1.算法 1.1假设表中...
分类:其他好文   时间:2014-05-06 15:36:44    阅读次数:260
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!