二分查找的实现与应用: 在学习算法的过程中,我们除了要了解某个算法的基本原理、实现方式,更重要的一个环节是利用big-O理论来分析算法的复杂度。在时间复杂度和空间复杂度之间,我们又会更注重时间复杂度。 时间复杂度按优劣排差不多集中在: O(1), O(log n), O(n), O(n log n) ...
分类:
其他好文 时间:
2017-07-30 18:03:24
阅读次数:
203
算法复杂度分为时间复杂度和空间复杂度。 时间复杂度用于度量算法运行的时间长短;而空间复杂度则是用于度量算法所需存储空间的大小。 时间复杂度 1.时间频度 一个算法运行所耗费的时间,从理论上是不能算出来的,必须上机运行測试才干知道。但我们不可能也没有必要对每一个算法都上机測试,仅仅需知道哪个算法花费的 ...
分类:
编程语言 时间:
2017-07-30 13:45:56
阅读次数:
238
【转载自】http://www.cnblogs.com/ider/archive/2012/04/01/binary_search.html 在学习算法的过程中,我们除了要了解某个算法的基本原理、实现方式,更重要的一个环节是利用big-O理论来分析算法的复杂度。在时间复杂度和空间复杂度之间,我们又会 ...
分类:
其他好文 时间:
2017-07-26 14:41:11
阅读次数:
165
因为复试时老师比较喜欢问排序算法那,所以 最近又把排序算法温习一遍,顺便写写代码。 1直接插入排序。 如上述代码:temp变量用于放置带插入数值。 直接插入算法的空间复杂度O(1),因为只用到了1个变量 空间复杂度取决于待排序数列。最好的情况下移动次数 2 * (n-1), 最坏的情况下移动次数(n ...
分类:
编程语言 时间:
2017-07-25 22:37:47
阅读次数:
214
当从字符流中仅仅读出前两个字符“go”时,第一个仅仅出现一次的字符是‘g’。当从该字符流中读出前六个字符“google”时。第一个仅仅出现 1 次的字符是”l”。 首先要记录一个字符出现的次数,为了实现O(1)查找。使用简易hash表存储。用occurences[256] 记录字符出现的次数。设置: ...
分类:
其他好文 时间:
2017-07-25 15:57:49
阅读次数:
96
1、K-近邻算法原理 1.1 算法特点 简单地说,k-近邻算法采用测量不同特征值之间的距离方法进行分类。 优点:精度高、对异常值不敏感、无数据输入假定 缺点:计算复杂度高、空间复杂度高 适用数据范围:数值型和标称型 1.2 工作原理 存在一个训练样本集,并且每个样本都存在标签(有监督学习)。输入没有 ...
分类:
编程语言 时间:
2017-07-24 20:24:12
阅读次数:
136
算法复杂度分为时间复杂度和空间复杂度。 其作用: 时间复杂度是指执行算法所需要的计算工作量; 而空间复杂度是指执行这个算法所需要的内存空间。 (算法的复杂性体现在运行该算法时的计算机所需资源的多少上,计算机资源最重要的是时间和空间(即寄存器)资源,因此复杂度分为时间和空间复杂度)。 简单来说,时间复 ...
分类:
编程语言 时间:
2017-07-23 22:41:17
阅读次数:
145
Monkey King Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 6274 Accepted Submission(s): 2678 Pr ...
分类:
其他好文 时间:
2017-07-23 10:06:57
阅读次数:
132
想必大家一定会Floyd了吧,Floyd只要暴力的三个for就可以出来,代码好背,也好理解,但缺点就是时间复杂度高是O(n³)。 于是今天就给大家带来一种时间复杂度是O(n²),的算法:Dijkstra(迪杰斯特拉)。 这个算法所求的是单源最短路,好比说你写好了Dijkstra的函数,那么只要输入点 ...
分类:
编程语言 时间:
2017-07-22 21:09:13
阅读次数:
208
题目意思: 一个数值数组中,大部分的数值出现两次,仅仅有一个数值仅仅出现过一次,求编程求出该数字。 要求,时间复杂度为线性,空间复杂度为O(1). 解题思路: 1.先排序。后查找。 因为排序的最快时间是O(nlogn), 所以这样的方法不能满足时间的要求。 2.其他技巧来解决: 依据主要的计算机组成 ...
分类:
编程语言 时间:
2017-07-22 12:11:02
阅读次数:
213