码迷,mamicode.com
首页 >  
搜索关键字:算法复杂度    ( 441个结果
各种排序的实现与复杂度分析(持续更新)
稳定性: 选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法, 冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。 复杂度 冒泡法:  复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。不说了。 直接插入排序:O(n*n) 希尔排序:算法的复杂度为n的1.2次幂 选择排序:O(n*n) 快速排序:不稳定,平均时间复杂度O(nlog...
分类:编程语言   时间:2015-01-10 01:09:47    阅读次数:222
最长上升子序列算法
这题目是经典的DP题目,也可叫作LIS(Longest Increasing Subsequence)最长上升子序列 或者 最长不下降子序列。很基础的题目,有两种算法,复杂度分别为O(n*logn)和O(n^2) 。A.O(n^2)算法分析如下:(a[1]...a[n] 存的都是输入的数)1、对于a...
分类:编程语言   时间:2015-01-07 18:26:49    阅读次数:280
大话快排 和 归排的渊源
一:起因 (1)包括冒泡算法、快排算法、插入排序算法等;还有基于外部排序的归并排序(以二路归并排序为例 ) 但是基本上在一个数量级上; (2) mergesort (归并排序) 可以应用在外部排序,这与基于内存的quicksort(快速排序)略有不同,他们的算法复杂度都可以达到O(nlogn) (3)mergesort 是稳定的排序算法,需要额外的空间开销O(n)...
分类:其他好文   时间:2015-01-06 17:52:40    阅读次数:241
总结: Sort 排序算法
排序总结面试经验硅谷某前沿小Startup面试时,问到的一个题目就是写一个快速排序算法。进而面试官问到了各种算法的算法复杂度,进而又问了Merge Sort 与 QuickSort 的优劣。对排序算法的全面理解,体现了计算机学生的功底。现在来讲Merge Sort 与Quick Sort 是最流行的...
分类:编程语言   时间:2015-01-02 23:42:54    阅读次数:1524
网络流算法Dinic的Python实现
在上一篇我们提到了网络流算法Push-relabel,那是90年代提出的算法,算是比较新的,而现在要说的Dinic算法则是由以色列人Dinitz在冷战时期,即60-70年代提出的算法变种而来的,其算法复杂度为O(mn^2)。 Dinic算法主要思想也是基于FF算法的,改进的地方也是减少寻找增广路径的迭代次数。此处Dinitz大师引用了一个非常聪明的数据结构,Layer Network,分层网络,...
分类:编程语言   时间:2015-01-02 17:36:17    阅读次数:418
网络流算法Push-relabel的Python实现
网络流的背景我就不多说了,就是在一个有向图中找出最大的流量,有意思的是,该问题的对偶问题为最小割,找到一种切分,使得图的两边的流通量最小,而且通常对偶问题是原问题的一个下界,但最小割正好等于最大流,即切割的边就是最大流中各个path饱和边的一个组合。说得可能比较含糊,这里想要了解清楚还是查阅相关资料吧。 最大流最原始最经典的解法就是FF算法,算法复杂度为O(mC),C为边的容量的总和,m为边数。...
分类:编程语言   时间:2015-01-02 16:02:48    阅读次数:412
【LeetCode】Merge k Sorted Lists 解题报告
【题目】 Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 合并几个有序链表为一个,分析算法复杂度。 【分治】 直观的想法是两两合并,有两种方法:1)list1和list2合并为newlist2,newlist2再和list3合...
分类:其他好文   时间:2014-12-26 11:12:18    阅读次数:129
算法复杂度概述
算法复杂度,即算法在编写成可执行程序后,运行时所需要的资源,资源包括时间资源和内存资源。一个算法的评价主要从时间复杂度和空间复杂度来考虑。(1)时间频度一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。算法的时间复杂度是指执行算法所需要的计算工作量。(2)时间复杂度一般情况下,算法中基本...
分类:编程语言   时间:2014-12-22 17:32:32    阅读次数:209
机器学习 常见算法分类
机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径,其...
分类:编程语言   时间:2014-12-15 17:02:01    阅读次数:202
【LeetCode】Merge k Sorted Lists
题目 Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 解答 方法1:利用分治的思想把合并k个链表分成两个合并k/2个链表的任务,一直划分,知道任务中只剩一个链表或者两个链表。可以很简单的用递归来实现。因此算法复杂度为T(k) = 2...
分类:其他好文   时间:2014-12-12 19:15:28    阅读次数:120
441条   上一页 1 ... 37 38 39 40 41 ... 45 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!