![](https://img-blog.csdnimg.cn/66d1cc9d35f649be955bf5f0bacaa243.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
文章平均质量分 55
数据结构
w___hao
这个作者很懒,什么都没留下…
展开
-
字典树、前缀树
字典树”也被称为“前缀树”,它可以利用公共前缀、已知信息从而实现快速的插入、查找功能,从而降低了算法的时间复杂度和空间复杂度。例如在文字游戏的开发过程中,判断某一个单词是否存在于词库文件中,最常见、无脑的方式就是采用for循环进行挨个对比。这种暴力算法的效率极低,此时我们便可以使用“字典树”的优势来解决我们需要处理的问题。在游戏开发中经常遇到的一种情形是:给出一系列的奖项以及对应的权重,随机生成一个数,通过权重来确定要给与哪一个奖项。转载 2023-11-13 09:13:53 · 142 阅读 · 0 评论 -
KMP模式匹配算法
KMP模式匹配算法让主串不发生没必要的回溯,即主串的索引值只做递增操作。如果主串的索引值不发生回溯,那么就需要子串索引值的回溯变化。子串索引值要以一种怎样的形式就行变化呢?子串索引值的变化方式只和子串自身有关系,而且索引值的变化取决于当前字符之前的串的前后缀的相似度。我们以next数组表示串的相似度。next数组的本质就是寻找子串中相同前后缀的长度,以此来表达匹配过程中需要跳过的字符个数。即根据已经掌握的信息来避免重复运算。原创 2023-08-06 16:02:02 · 316 阅读 · 0 评论 -
八大排序算法
一、冒泡排序思路:每进行一趟排序,将未排序序列中的最大值放在未排序序列的末尾,未排序序列数减一。(1)假设未排序序列的长度为len,则需要对序列进行 len-1 次排序,假设i表示需要进行排序的趟数。(2)每趟排序都需要进行 len-i 次两两相邻比较 二、简单选择排序思路:把未排序的第一个数视为最值(最大或者最小值),把其后的每一个数依次与该数进行比较。一趟排序完毕后,得到未排序序列的最值(最大或者最小值),把其放在未排序的最小下标出。(1)假设未排序的序列长度为len,则需要对序列进行原创 2021-03-13 19:38:31 · 96 阅读 · 0 评论