算法+数据结构
236004
这个作者很懒,什么都没留下…
展开
-
排序算法:编程算法助程序员走上高手之路
算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。 快速排序使用分治法(Divide and conquer)策转载 2017-08-20 11:44:19 · 11013 阅读 · 0 评论 -
二分图的最大匹配、完美匹配和匈牙利算法
匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名。匈牙利算法是基于Hall定理中充分性证明的思想,它是二部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法。 这篇文章讲无权二分图(unweighted bipartite graph)的最大匹配(maximum matching)和完美匹配(perfect matching),以转载 2017-08-20 11:30:38 · 11242 阅读 · 0 评论 -
算法面试题:如何找最长的增长子序列
给定一组数字,找出数组中最长的增长子序列的长度。子序列不一定必须是连续的。例如,给定数组[0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15],最长的增长子序列的长度为6:它是0,2,6,9,11,15。解决方案解决这个问题的蛮力方法是生成每个可能的子序列,然后测试每个子序列的单调性并保持跟踪最长的那个。这将非常昂贵:生成每个子序列就得O(2^N)!相反,我们可以试着用递归...转载 2018-03-28 21:20:17 · 1136 阅读 · 0 评论