
数据结构与算法
hongye_05
这个作者很懒,什么都没留下…
展开
-
字符串模式匹配之Brute force、KMP、Horspool算法
字符串匹配是模式匹配最简单的一个问题,但在文本匹配领域字符串匹配是一个非常重要的一个主题。常见的字符串匹配算法有:Brute Force、KMP、Horspool、BM、Sunday以及RK算法等。下面要介绍的是Brute Force算法,即暴力匹配算法。 暴力算法就是文本串每次移动向右移动一个字符,与模式串比较,如果每个字符都相等,则表示在文本串中找到与模式串匹配的子集。假设文原创 2015-04-06 16:52:43 · 1091 阅读 · 0 评论 -
稳定排序之冒泡、插入、归并以及基数排序
稳定排序的定义是这样子的: 待排序的记录序列中可能存在两个或两个以上关键字相等的记录。排序前的序列中Ri领先于Rj(即i 稳定排序有什么用呢?书面的解释是这样子的:排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。这里可以举一个更为通俗一点的例子 假如{5,6,5,9}为在银行排队的四个人,里面的数值分别原创 2015-11-26 09:43:13 · 690 阅读 · 0 评论 -
不稳定排序之选择、快速、希尔以及堆排序
上一篇中介绍了四种稳定的排序算法,也介绍了稳定与不稳定算法的区别,下面要介绍的是四种不稳定的算法,分别是选择排序、快速排序、希尔排序以及堆排序。 第一、选择排序,选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。具体实现如下: //选择排序原创 2015-11-26 21:53:07 · 671 阅读 · 0 评论