算法分析初步: 在任何一本比较正经的算法书当中,第一章都会介绍算法正确性的证明方法和对算法复杂度的分析,因为算法本身两个重要的特性就是正确性和高效性,只有保证了这两部分方能设计出有实际利用价值的算法。 那么这篇文章通过一个简单的题目来初步探讨一下如何进行算法时间复杂度的分析。 需要指明的是,算法的复 ...
分类:
其他好文 时间:
2016-06-29 17:17:27
阅读次数:
128
经典的100个c算法
算法
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生
一对兔子,小兔
子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每
个月的兔子总数
为多少?
______________________________________________________
程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....
...
分类:
编程语言 时间:
2016-06-27 10:42:40
阅读次数:
219
所谓算法,就是隐匿在数据结构后背后的原理,在开发中好的算法可以降低时间复杂度提升可复用性。《算法之美——隐匿在数据结构背后的原理(C++版)》一书围绕算法与数据结构这个话题,用汉诺塔问题和八皇后问题等22个经典算法问题循序渐进、深入浅出地介绍了现代计算机技术中常..
分类:
编程语言 时间:
2016-06-24 13:08:15
阅读次数:
260
Canny边缘检测算法一直是边缘检测的经典算法。下面详细介绍Canny边缘检测算法的原理以及编程实现。 Canny边缘检测基本原理:(1)图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘的位置。 (2)根据对信噪比与定位乘积进行测度,得到最优化逼近算子。这就是Canny边缘检 ...
分类:
其他好文 时间:
2016-06-23 16:04:53
阅读次数:
680
Marching Cubes算法是三维重建算法中的经典算法,算法主要思想是检测与等值面相交的体素单元并计算交点的坐标,然后对不同的相交情况利用查找表在体素单元内构建相应的网格拓扑关系。Marching Cubes算法简单,但是存在一些缺陷:1.模型二义性问题;2.模型特征问题。 对于二义性问题,以2 ...
分类:
编程语言 时间:
2016-06-22 17:16:18
阅读次数:
1073
php经典算法 1.冒泡算法,排序算法,由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序 $array = array(a,f,c,b,e,h,j,i,g); function maopao_fun($array){ if($len <= 1) { return $ar ...
分类:
编程语言 时间:
2016-06-16 09:17:25
阅读次数:
176
因为本人数学水平不高,却偏偏要理解那些基于概率和数学的算法,本篇主要收集记录一些平时看到的对常用或者经典算法讲解的通俗易懂的文章,以备后面用到查看,也可以提供给大家作为参考,毕竟那么高深的算法,不是一上来就能看懂的。 由于平时不定会看到什么算法,所以看到好的文章就添加过来,所以本文是不定时更新的, ...
分类:
编程语言 时间:
2016-06-15 19:01:05
阅读次数:
139
一、深度优先搜索 深度优先搜索算法(Depth First Search),是图论中的经典算法。 深度优先搜索算法是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当结点所有子结点那一层都被搜索过,再回溯返回到当前结点的邻结点,继续搜索,直到遍历完整棵树。一般采用的是前序遍历,先根然后再左右结点的 ...
分类:
编程语言 时间:
2016-06-13 13:39:07
阅读次数:
389
冒泡排序是非常容易理解和实现,,以从小到大排序举例: 设数组长度为N。 1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。 2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。 3.N=N-1,如果N不为0就重复前面二步,否则排 ...
分类:
编程语言 时间:
2016-06-11 22:56:54
阅读次数:
152
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想 分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。 总的说来,要直接默写出快速排序还是有 ...
分类:
编程语言 时间:
2016-06-11 22:52:40
阅读次数:
205