码迷,mamicode.com
首页 >  
搜索关键字:时间复杂度    ( 8884个结果
连续子数组的最大和
题目:输入一个整型数组,数组里有正数也有负数。数组中一个或者连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)分析:首先需要考虑的条件:数组里有正数也有负数,根据这个条件,从数组第一个元素开始,temp累计相加,当temp增加时,我们就将temp赋值给sum。当temp...
分类:其他好文   时间:2014-07-07 23:22:47    阅读次数:224
[Leetcode][Tree][Binary Tree Preorder Traversal]
二叉树的前序遍历:root点先被访问,然后是left和right子节点。迭代的版本也相对好写。1、递归版本:时间复杂度O(N),空间复杂度O(N) 1 /** 2 * Definition for binary tree 3 * struct TreeNode { 4 * int va...
分类:其他好文   时间:2014-07-07 20:35:24    阅读次数:158
输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数
题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次。分析:首先最先想到的是遍历从1到n的每个数,判断每个数中包含1的个数,再相加。 时间复杂度:如果输入数字为n,n有O(logn)位,我们需要...
分类:其他好文   时间:2014-07-07 18:57:02    阅读次数:193
算法复杂度分析
对于同一计算问题可以用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度和空间复杂度来考虑。对于一个算法,当输入规模大到使只与运行时间的增加量级有关时,就是在研究算法的渐进效率。也就是说,从极限角度看,我们只关心算法...
分类:其他好文   时间:2014-07-07 18:27:56    阅读次数:218
【数据结构】两个单循环链表的连接操作
如果在单链表或头指针表示的链表上操作这个比较消耗性能,因为都需要遍历第一个链表,找到an,然后将b1链接到an的后面,时间复杂度是:O(n)。若在尾指针表示的单循环链表上实现,则只需改变指针,无需遍历,时间复杂度是:O(1) 现在看算法实现,需要4个主要步骤,都注释了: LinkList Connect(LinkList A,LinkList B){ //假设A,B为非空循环链表的尾指针...
分类:其他好文   时间:2014-06-29 22:33:08    阅读次数:319
ACM:最小生成树,kruskal && prim,并查集
题目: 输入顶点数目,边的数目,输入每条边的两个顶点编号还有每条边的权值,求最小生成树,输出最小生成树的权值。。 注意:prim算法适合稠密图,其时间复杂度为O(n^2),其时间复杂度与边得数目无关,而kruskal算法的时间复杂度为O(eloge)跟边的数目有关,适合稀疏图。 kruskal----归并边;prim----归并点 方法一:kruskal,克鲁斯卡尔...
分类:其他好文   时间:2014-06-28 09:08:53    阅读次数:177
排序(4)---------希尔(shell)排序(C语言实现)
前面的介绍的三种排序算法,都属于简单排序,大家可以看下具体算法,时间复杂度基本都在0(n^2),这样呢,很多计算机界、数学界的牛人就很不爽了,他们在家里想啊想,吃饭的时候在想,窝粑粑的时候也在想,究竟能不能把时间复杂度搞低点呢。终于,皇天不负有心人啊,王母娘娘显灵了,终于被DL. SHELL这哥们给想出来了。他所创造的希尔(shell)排序是世界上第一个打破0(n^2)的时间复杂度的算法。牛逼不? 好了,言归正传。...
分类:编程语言   时间:2014-06-28 07:38:44    阅读次数:217
Python基于比较的排序
排序是算法学习中最基本的问题。1.平均时间复杂度均为O(N2)的排序1.1 插入排序插入排序对少量元素的排序非常有效。工作机制就像打牌一样,为了将牌插入到已排好序的牌中,需要将牌与手中的牌从右向左进行比较。def insertionSort(alist): n=len(alist) fo...
分类:编程语言   时间:2014-06-27 12:07:54    阅读次数:338
时间复杂度
1, 算法分为时间复杂度和空间复杂度; 作用: 时间复杂度是度量算法执行的时间长短;而空间复杂度是度量算法所需存储空间的大小。   2. 一般情况下,算法的基本操作重复执行的次数是模块n的某一个函数f(n),因此,算法的时间复杂度记做:T(n)=O(f(n))   分析:随着模块n的增大,算法执行的时间的增长率和f(n)的增长率成正比,所以f(n)越小,算法的时间复杂度越低,算法的效率越...
分类:其他好文   时间:2014-06-27 08:33:55    阅读次数:144
STL之容器适配器priority_queue的实现框架
在前面的文章STL之heap相关操作算法中介绍了堆的相关操作算法,由于堆的注意主要作用是用于排序,我们也知道堆排序的时间复杂度为o(nlogn),是一种不稳定的排序算法,利用堆这一数据结构,我们可以很快第获取一个大数据中最大(或最小)的k个数。同时,上篇文章中,也提出了相关heap算法的一些问题...
分类:其他好文   时间:2014-06-27 08:16:59    阅读次数:171
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!