随笔分类 - 算法

摘要:欢迎关注我的个人博客:www.wuyudong.com, 更多精彩文章与您分享递归的概念与基本思想一个函数、过程、概念或数学结构,如果在其定义或说明内部又直接或间接地出现有其本身的引用,则称它们是递归的或者是递归定义的。在程序设计中,过程或函数直接或者间接调用自己,就被称为递归调用。递归的实现方法递... 阅读全文
posted @ 2015-02-04 09:56 wuyudong 阅读(1966) 评论(4) 推荐(4) 编辑
摘要:本文地址:http://www.cnblogs.com/archimedes/p/4265019.html,转载请注明源地址。递推法是一种重要的数学方法,在数学的各个领域中都有广泛的运用,也是计算机用于数值计算的一个重要算法。这种算法特点是:一个问题的求解需一系列的计算,在已知条件和所求问题之间总存... 阅读全文
posted @ 2015-02-03 09:08 wuyudong 阅读(1597) 评论(2) 推荐(2) 编辑
摘要:本文地址:http://www.cnblogs.com/archimedes/p/algorithm-enumeration.html,转载请注明源地址。枚举法的基本思想枚举法的基本思想是根据提出的问题枚举所有可能状态,并用问题给定的条件检验哪些是需要的,哪些是不需要的。能使命题成立,即为其解。枚举... 阅读全文
posted @ 2015-02-02 13:51 wuyudong 阅读(3606) 评论(0) 推荐(6) 编辑
摘要:本文地址:http://www.cnblogs.com/archimedes/p/dynamic-programming.html,转载请注明源地址斐波纳契数列F(n) n012345678910F(n)1123581321345589递归 vs 动态规划递归版本(太慢):in... 阅读全文
posted @ 2015-01-28 21:17 wuyudong 阅读(1189) 评论(0) 推荐(2) 编辑
摘要:桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的数组内的数值是均匀分配的时候,桶排序使用线性时间(Θ(n))。但桶... 阅读全文
posted @ 2014-10-13 12:58 wuyudong 阅读(1147) 评论(0) 推荐(1) 编辑
摘要:归并排序(Merge sort)是创建在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。一个归并排序的例子:对一个随机点的链表进行排序本文地址:http://www.cnblogs.com/archimedes/p/merge-sort... 阅读全文
posted @ 2014-10-12 00:26 wuyudong 阅读(697) 评论(0) 推荐(0) 编辑
摘要:基数排序(Radix sort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明可以追溯到1887年赫尔曼·何乐礼在打孔卡片制表机(Tabulati... 阅读全文
posted @ 2014-10-10 22:08 wuyudong 阅读(2357) 评论(0) 推荐(4) 编辑
摘要:计数排序(Counting sort)是一种稳定的线性时间排序算法。计数排序使用一个额外的数组C,其中第i个元素是待排序数组A中值等于i的元素的个数。然后根据数组C来将A中的元素排到正确的位置。本文地址:http://www.cnblogs.com/archimedes/p/counting-sor... 阅读全文
posted @ 2014-10-10 20:41 wuyudong 阅读(2464) 评论(0) 推荐(2) 编辑
摘要:希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。希尔排序是基于插入排序的以下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时, 效率高, 即可以达到线性排序的效率但插入排序一般来说是低效的, 因为插入排序每次只能将数据移动一位本文地址:ht... 阅读全文
posted @ 2014-10-10 12:58 wuyudong 阅读(7685) 评论(0) 推荐(7) 编辑
摘要:直接插入排序直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。本文地址:http://www.cnblogs.com/archimedes/p/insert-sort-algorithm... 阅读全文
posted @ 2014-10-10 08:06 wuyudong 阅读(5334) 评论(1) 推荐(5) 编辑
摘要:快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(nlogn) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实作出来。使用快速... 阅读全文
posted @ 2014-10-09 21:53 wuyudong 阅读(1023) 评论(0) 推荐(2) 编辑
摘要:Gnome排序(地精排序),起初由Hamid Sarbazi-Azad 于2000年提出,并被称为stupid排序,后来被Dick Grune描述并命名为“地精排序”,作为一个排序算法,和插入排序类似,除了移动一个元素到最终的位置,是通过交换一系列的元素实现,就像冒泡排序一样。概念上十分简单,不需要 阅读全文
posted @ 2014-10-09 10:39 wuyudong 阅读(502) 评论(0) 推荐(0) 编辑
摘要:选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。本文地址:http://www.cnblo... 阅读全文
posted @ 2014-10-09 08:13 wuyudong 阅读(706) 评论(0) 推荐(1) 编辑
摘要:本文地址:http://www.cnblogs.com/archimedes/p/stooge-bogo-sort-algorithm.html,转载请注明源地址。Stooge排序算法Stooge排序是一种低效的递归排序算法,甚至慢于冒泡排序。在《算法导论》第二版第7章(快速排序)的思考题中被提到,... 阅读全文
posted @ 2014-10-08 21:48 wuyudong 阅读(1639) 评论(0) 推荐(1) 编辑
摘要:梳排序(Comb sort)是一种由Wlodzimierz Dobosiewicz于1980年所发明的不稳定排序算法,并由Stephen Lacey和Richard Box于1991年四月号的Byte杂志中推广。梳排序是改良自冒泡排序和快速排序。在冒泡排序算法中,只比较阵列中相邻的二项,即比较的二项... 阅读全文
posted @ 2014-10-08 21:29 wuyudong 阅读(851) 评论(0) 推荐(1) 编辑
摘要:鸡尾酒排序,也就是定向冒泡排序,鸡尾酒搅拌排序, 是冒泡排序的一种变形。此算法与冒泡排序的不同处在于排序时是以双向在序列中进行排序。使用鸡尾酒排序为一列数字进行排序的过程本文地址:http://www.cnblogs.com/archimedes/p/cocktail-sort-algorithm.... 阅读全文
posted @ 2014-10-08 13:33 wuyudong 阅读(1276) 评论(3) 推荐(2) 编辑
摘要:奇偶排序,或奇偶换位排序,或砖排序,是一种相对简单的排序算法,最初发明用于有本地互连的并行计算。这是与冒泡排序特点类似的一种比较排序。该算法中,通过比较数组中相邻的(奇-偶)位置数字对,如果该奇偶对是错误的顺序(第一个大于第二个),则交换。下一步重复该操作,但针对所有的(偶-奇)位置数字对。如此交替... 阅读全文
posted @ 2014-10-08 12:07 wuyudong 阅读(3031) 评论(2) 推荐(3) 编辑
摘要:冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 冒泡排序对n个项目 阅读全文
posted @ 2014-10-07 23:53 wuyudong 阅读(1705) 评论(3) 推荐(5) 编辑
摘要:主要特征1、使用hash函数2、预处理阶段时间复杂度O(m),常量空间3、查找阶段时间复杂度O(mn)4、期望运行时间:O(n+m)本文地址:http://www.cnblogs.com/archimedes/p/karp-rabin-algorithm.html,转载请注明源地址。算法描述在大多数... 阅读全文
posted @ 2014-10-07 09:12 wuyudong 阅读(1894) 评论(2) 推荐(1) 编辑
摘要:主要特征1、没有预处理阶段2、需要常量额外空间3、通常需要模式串窗口向右移动一个位置4、可以按照任意顺序进行比较5、搜索的时间复杂度为O(mn)6、文本字符期望比较次数:2n本文地址:http://www.cnblogs.com/archimedes/p/brute-force-algorithm.... 阅读全文
posted @ 2014-10-07 00:23 wuyudong 阅读(2248) 评论(0) 推荐(2) 编辑

Top_arrow