算法
文章平均质量分 97
Hani_97
Stay hungry,stay foolish。
展开
-
各种排序算法(1)冒泡排序 选择排序 快速排序
各种排序算法(1)冒泡排序 1. 冒泡排序1.1 名字由来:1.2 冒泡思想1.3 原理1.4 时间复杂度:O(n^2)1.5 空间复杂度:11.6 是否稳定:稳定1.7 代码例子1. 冒泡排序1.1 名字由来:算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。1.2 冒泡思想重复地遍历过要排序的数列,依次比较两个相邻的元素,如果他们的顺序错误就把他们交换过来(升序排列)。把大(小)的元素往前(后)原创 2020-07-15 18:09:08 · 530 阅读 · 0 评论 -
时间复杂度 空间复杂度 算法稳定性
时间复杂度 空间复杂度 算法稳定性1. 时间复杂度1.1 概念(时间复杂度:执行语句的次数)1.2 时间复杂度的计算(例子)2. 空间复杂度2.1 概念(空间复杂度:临时空间大小)2.2 计算方法:3. 算法稳定性1. 时间复杂度1.1 概念(时间复杂度:执行语句的次数)首先要说的是,时间复杂度的计算并不是计算程序具体运行的时间,而是算法执行语句的次数。1.2 时间复杂度的计算(例子)(1)如果算法的执行时间不随着问题规模n的增加而增长,即使算法中有上千条语句,其执行时间也不过是一个较大的常数。此原创 2020-07-15 18:07:58 · 227 阅读 · 1 评论 -
字符串匹配算法4:AC算法(2)代码实现
字符串匹配算法4:AC算法(2)代码实现1. 说明2. 代码实现(c语言)1. 说明AC算法理解请看上个博客字符串匹配算法4:AC算法(1)理解https://blog.csdn.net/lqy971966/article/details/1063538152. 代码实现(c语言)...原创 2020-05-26 16:40:41 · 942 阅读 · 1 评论 -
字符串匹配算法4:AC算法(1)理解
字符串匹配算法4:AC算法(1)理解1. 背景(问题的提出)2. AC算法2.1 AC算法-定义2.2 AC算法-特点2. AC算法-时间复杂度3. 实现3.1 构建模式匹配机(有限状态机)参考1. 背景(问题的提出)假设您有一个文本包括 n个单词words 和 大量关键字 有m 个关键字keywords,请问你如何快速找到所有关键字?首先想到的是简单的暴力匹配,两个for循环遍历查找即如下所示://遍历所有单词 n个 words//遍历所有关键字 m个 keywordsfor(int i =原创 2020-05-26 12:52:06 · 2454 阅读 · 0 评论 -
二分查找
二分查找原创 2020-05-11 11:16:14 · 422 阅读 · 0 评论 -
字符串匹配算法3:Boyer-Moore 算法
字符串匹配算法3:Boyer-Moore 算法1.1.原创 2020-05-09 19:54:40 · 2027 阅读 · 1 评论 -
字符串匹配算法2:KMP算法
字符串匹配算法2:KMP算法1. 背景:2. KMP算法思想2.1 KMP思想2.2 匹配位置处理2.3 例子3. 失配函数3.1 什么是失配函数?3.2 next函数3.3 例子3.4 (模式串P)失配函数代码4. KMP算法实现代码例子1. 背景:根据暴力方法的缺点,而引出KMP算法的思想。在暴力匹配方法中,上一次匹配失败,则下一次匹配开始时,主串指针会回溯到i+1,模式串指针会回退到......原创 2020-04-23 17:29:42 · 1641 阅读 · 0 评论 -
字符串匹配算法1:暴力匹配算法
字符串匹配算法1:暴力匹配算法1. 问题2. 解决思想3. 代码参考:1. 问题有一个文本串S,和一个模式串P,现在要查找P在S中的位置S串: 234 1235 123456P串: 1234562. 解决思想如果用暴力匹配的思路,并假设现在文本串S匹配到 i 位置,模式串P匹配到 j 位置,则有:如果当前字符匹配成功(即S[i] == P[j]),则i++,j++,继续匹配下一个......原创 2019-08-19 22:27:37 · 1141 阅读 · 0 评论