
算法学习
文章平均质量分 83
逐风者の宇
追逐风的方向
展开
-
KMP模式匹配算法
朴素的模式匹配算法 对主串的每一个字符作为子串的开头,与要匹配的字符串进行匹配。对主串做大循环,每个字符开头做需匹配长度的小循环,直到匹配成功或者全部遍历完成为止示例程序(朴素的模式匹配)int Index(char *S, char *T){ int i, j; // 直到遍历主串完成或者需匹配字符串全部匹配成功 for (i = 0, j = 0; i < (in原创 2017-12-13 10:21:51 · 4435 阅读 · 4 评论 -
栈的应用-四则运算求值
栈的应用-四则运算求值后缀表达式(逆波兰) 从左到右遍历表达式,若遇到数字则直接输出。若遇到符号,则与符号栈中的栈顶元素进行对比(乘除优先于加减),若优先级低于栈顶元素或为右括号,则依次出栈,直到不低于栈顶元素的优先级或者匹配到左括号,此符号进栈。若优先级高于栈顶元素,则直接进栈。最终表达式不包含左右括号后缀表达式计算结果 从左到右遍历后缀表达式,若遇到数字则进栈,遇到符号,则将栈顶的两个原创 2017-12-01 13:52:13 · 488 阅读 · 0 评论 -
二叉树的创建,前、中、后序遍历以及层次遍历
二叉树的创建 对于二叉树的创建,可能很多人不知道如何去初始化一个二叉树,其实初始化二叉树非常简单,需要引入一个扩展二叉树的概念扩展二叉树 扩展二叉树:让二叉树的所有节点都具有左右孩子,没有孩子的,我们手动将其填满,例如#,即如下所示 扩展二叉树主要的目的是为了确定一颗二叉树,我们都知道,只有前序加中序或者后序加中序才能确定一棵树,但是我们同样可以通过扩展二叉树的原创 2018-01-03 20:26:54 · 1452 阅读 · 0 评论 -
冒泡排序,选择排序,插入排序,希尔排序,堆排序,归并排序,快速排序实现
各种排序的时间复杂度排序方法平均情况最好情况最坏情况辅助空间稳定性冒泡排序O(n^2)O(n)O(n^2)O(1)稳定简单选择排序O(n^2)O(n^2)O(n^2)O(1)稳定直接插入排序O(n^2)O(n)O(n^2)O(1)稳定希尔排序O(nlogn)~O(n^2)O(n^1.3)O(n^2)O(1)不稳...原创 2018-10-25 17:43:16 · 2353 阅读 · 0 评论