
算法
肖市一郎
这个作者很懒,什么都没留下…
展开
-
递归-简介
一:递归与循环的区别,举例说明 递归:你打开面前这扇门,看到屋里面还有一扇门。你走过去,发现手中的钥匙还可以打开它,你推开门,发现里面还有一扇门,你继续打开它。若干次之后,你打开面前的门后,发现只有一间屋子,没有门了。然后,你开始原路返回,每走回一间屋子,你数一次,走到入口的时候,你可以回答出你到底用这你把钥匙打开了几扇门。 递归也有点类似你在百度上面查一个词的解释,发现解释里面又有另外一个新的名词你不知道,于是又开始查这个新的名词,新的名字里面又有你不知道的新名词,...原创 2020-05-23 19:48:47 · 5137 阅读 · 0 评论 -
排序-java十大排序
最近几天在研究排序算法,看了很多博客,发现网上有的文章中对排序算法解释的并不是很透彻,而且有很多代码都是错误的,例如有的文章中在“桶排序”算法中对每个桶进行排序直接使用了Collection.sort()函数,这样虽然能达到效果,但对于算法研究来讲是不可以的。所以我根据这几天看的文章,整理了一个较为完整的排序算法总结,本文中的所有算法均有JAVA实现,经本人调试无误后才发出,如有错误,请各位前辈指出。0、排序算法说明0.1 排序的定义对一序列对象根据某个关键字进行排序。0....转载 2020-05-21 22:22:29 · 191 阅读 · 0 评论 -
排序-插入排序
一、基本思想通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应的位置并插入。插入排序非常类似于整扑克牌。在开始摸牌时,左手是空的,牌面朝下放在桌上。接着,一次从桌上摸起一张牌,并将它插入到左手一把牌中的正确位置上。为了找到这张牌的正确位置,要将它与手中已有的牌从右到左地进行比较。无论什么时候,左手中的牌都是排好序的。如果输入数组已经是排好序的话,插入排序出现最佳情况,其运行时间是输入规模的一个线性函数。如果输入数组是逆序排列的,将出现最坏情况。平均情况与最坏情况一样,...转载 2020-05-21 21:48:56 · 129 阅读 · 0 评论 -
算法的时间复杂度和空间复杂度(转载)
算法的时间复杂度和空间复杂度一、算法效率的度量方法1.事后统计方法这种方法主要是通过设计好的测试程序和数据,利用计算机计时器对不同算法编制的程序的运行时间进行比较,从而确定算法效率的高低。2.事前分析估算方法在计算机程序编写前,依据统计方法对算法进行估算。经过总结,我们发现一个高级语言编写的程序在计算机上运行时所消耗的时间取决于下列因素:算法采用的策略,方案编译产生的代码质量问题的输入规模机器执行指令的速度由此可见,抛开这些与计算机硬件、软件有关的因素,一个程序的运行时间依赖于算转载 2020-05-21 14:43:02 · 983 阅读 · 0 评论