
数据结构与算法
DCX_abc
我爱编程!
展开
-
插入排序—直接插入排序
基本思想: 将一个记录插入到已排序好的有序表中,从而得到一个新记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。 如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以插入排序是稳定的。 要点:设立哨兵,作为临时存储和判断数原创 2017-11-12 15:45:03 · 1002 阅读 · 1 评论 -
选择排序—简单选择排序
简单选择排序是一种选择排序。选择排序:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止。简单排序处理流程:(1)从待排序序列中,找到关键字最小的元素;(2)如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换;(3)从余下的 N - 1 个元素中,找出关键字最小的元素,重复(1)、(2)步,直到排序结束原创 2017-11-15 14:45:53 · 1037 阅读 · 2 评论 -
插入排序—希尔排序
希尔排序又叫缩小增量排序 ,希尔排序是1959 年由D.L.Shell 提出来的,相对直接排序有较大的改进。基本思想:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。基本操作如下: 第一步:选择一个增量序列t1,t2,…,tk,其中ti>tj,tk=1; 第二步原创 2017-11-12 18:57:06 · 880 阅读 · 1 评论 -
浅谈KMP算法
1.定义 Knuth-Morris-Pratt 字符串查找算法,简称为 “KMP算法”,常用于在一个文本串S内查找一个模式串P 的出现位置,这个算法由Donald Knuth、Vaughan Pratt、James H. Morris三人于1977年联合发表,故取这3人的姓氏命名此算法。 kmp算法完成的任务是:给定两个字符串O和f,长度分别为n和m,判断f是否在O中出现,如果出现则返回出现原创 2017-11-12 15:15:58 · 697 阅读 · 0 评论