堆排序算法的时间复杂度为O(nlgn).在堆排序算法中,我们使用的是最大堆。(1)初始时候,堆排序算法利用BUILD-MAX-HEAP将输入数组A[1..n]建成最大堆。此时堆的根结点是最大元素,且该元素位于数组A[1]。接着将A[1]与A[n]互换,则可以将A[1..n]中的最大值置于A[n]。(...
分类:
其他好文 时间:
2014-07-22 23:16:35
阅读次数:
404
http://codeforces.com/contest/425/problem/A题目链接;然后拿出这道题目是很多人不会分析题目,被题目吓坏了,其中包括我自己,想出复杂度,一下就出了啊!真是弱!
直接暴力求出矩阵数值,然后枚举每一个【I,J];再O[N]判断,分配好在[I,J]区间的数和之内的数...
分类:
其他好文 时间:
2014-07-22 23:07:53
阅读次数:
307
序
算法的复杂性体现在运行该算法时所需的计算机资源多少,而计算机资源最重要的是时间和空间。算法复杂度分为时间复杂度和空间复杂度。
一个高级语言编写的程序在计算机上运行所消耗的时间取决于下列因素: 1、算法采用的策略、方案 2、编译产生的代码质量 3、问题的输入规模 4、机器执行指令的速度
抛开与计算...
分类:
其他好文 时间:
2014-05-01 13:54:35
阅读次数:
377
定义栈的数据结构,在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min ,
push , pop 的时间复杂度都是O(1)。
分类:
其他好文 时间:
2014-05-01 12:33:27
阅读次数:
320
算法复杂度 分为时间复杂度和空间复杂度。其作用:
时间复杂度是度量算法执行的时间长短;而空间复杂度是度量算法所需存储空间的大小。 时间复杂度1.时间频度
一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能 知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的....
分类:
其他好文 时间:
2014-05-01 12:15:55
阅读次数:
335
这道题需要注意的地方有以下一些:1.
求从子树中的某节点到当前节点的最大路径不能采用递归方法,因为这个部分会被反复的调用,如果用递归,会使得之前已经计算过的节点被重复计算,使得时间复杂度特别高;2.
树中有节点的值是负数的。下面是AC代码。(我发现AC并不代表代码真的完全正确!!) 1 /** 2 ...
分类:
其他好文 时间:
2014-05-01 12:10:52
阅读次数:
274
这道题要求的一个min和一个max,只是这个min所在的位置要在max所在位置的左边。有一种做法是采用蛮力算法,也就是通过从左往右遍历,把每一个元素都当做min,然后再在这个元素的右边找一个最大值,这样得到一个profit,最后求得所有情况中profit的最大值即刻。但是这种做法的时间复杂度是O(n...
分类:
其他好文 时间:
2014-05-01 10:17:20
阅读次数:
287
原题地址:http://oj.leetcode.com/problems/sort-list/题意:链表的排序。要求:时间复杂度O(nlogn),空间复杂度O(1)。解题思路:由于题目对时间复杂度和空间复杂度要求比较高,所以查看了各种解法,最好的解法就是归并排序,由于链表在归并操作时并不需要像数组的...
分类:
编程语言 时间:
2014-04-30 15:09:41
阅读次数:
428
原题地址:http://oj.leetcode.com/problems/4sum/题意:从数组中找到4个数,使它们的和为target。要求去重,可能有多组解,需要都找出来。解题思路:一开始想要像3Sum那样去解题,时间复杂度为O(N^3),可无论怎么写都是Time
Limited Exceeded...
分类:
编程语言 时间:
2014-04-30 13:28:46
阅读次数:
445
2014-04-29
04:40题目:给定一个字母组成的矩阵,和一个包含一堆单词的词典。请从矩阵中找出一个最大的子矩阵,使得从左到右每一行,从上到下每一列组成的单词都包含在词典中。解法:O(n^3)级别的时间和空间进行动态规划。这道题目和第17章的最后一题很像,由于这题的时间复杂度实在是高,我动手写...
分类:
其他好文 时间:
2014-04-29 14:21:00
阅读次数:
498