数据结构与算法
InvertibleMatrix
这个作者很懒,什么都没留下…
展开
-
排序算法总结
总结了常用的排序算法,提供的是C++代码。 目录冒泡排序选择排序插入排序希尔排序冒泡排序是一种交换排序,通过两两比较相邻的数,将大的数往后移,再与之后的数比较,这样在当前序列中最大的数就移到了队列的最末尾,然后对数组中除了最后一个数的剩余数组进行相同的操作。具体的代码实现如下:void BolSort(int a[], int N) { for (int i = N - 1;i >翻译 2017-08-22 22:28:11 · 343 阅读 · 0 评论 -
利用栈实现四则运算
这里主要介绍一种常见的栈的应用:求数字表达式的值。 目录后缀表达式中缀表达式到后缀表达式后缀表达式运算参考文献后缀表达式也成为逆波兰(RPN)表示,表达式中不需要括号,所有的运算符都在操作数之后出现。运算时,遇到数字就进栈,遇到符号就将栈顶的两个符号弹出进行运算,运算的结果进栈,一直得到最后的结果。平时看到的标准四则运算就是中缀表达式,所有的运算符号都在两数字之间。计算机进行运算时,实际上要翻译 2017-08-28 13:50:59 · 2010 阅读 · 0 评论 -
KMP算法
Knuth-Morris-Pratt设计的模式匹配算法,在一个串S内查找模式串P出现的位置。问题的关键在于寻找模式串中最大长度的相同前缀和后缀。在某个字符失配时,该字符所对应的next值会告诉下一步匹配应该跳到哪个位置。其中next数组中存的是除当前字符外的最长相同前缀后缀(如果存在p0p1...pk−1pk=pj−kpj−k+1…pj−1pjp_0 p_1 ...p_{k-1} p_k = p_{翻译 2017-08-28 15:13:44 · 297 阅读 · 0 评论