![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++
文章平均质量分 72
huntererer
这个作者很懒,什么都没留下…
展开
-
c++异常
一、什么是异常处理 一句话:异常处理就是处理程序中的错误。二、为什么需要异常处理,以及异常处理的基本思想 C++之父Bjarne Stroustrup在《The C++ Programming Language》中讲到:一个库的作者可以检测出发生了运行时错误,但一般不知道怎样去处理它们(因为和用户具体的应用有关);另一方面,库的用户知道怎样处理这转载 2016-02-14 02:36:46 · 400 阅读 · 0 评论 -
中缀转前缀 c语言
今天写后缀表达式转中缀表达式卡了好久,最后去上网问了才会,思路很清晰但是代码的组织能力欠缺。看来我也是那种伪代码写的对,代码通不过的选手。写个普通的中缀转前缀吧,算法都是死的,就那么几步,我还调试了半天,不过对优先级的理解倒是透彻了(isp 和 icp)利用栈将中缀表达式转成前缀表达式的思路:1)求输入串的逆序。2)检查输入的下一元素。3)假如是操作数,把它添加到输出串中。原创 2016-03-06 00:30:45 · 2194 阅读 · 0 评论 -
kmp模式匹配算法
模式匹配就是在字符串string中寻找模式pat,c语言中有内置函数strstr。但是今天我学了更快的算法(线性时间复杂性!)——————KMP算法。这个算法是用三个作者的名字命名的,分别是Knuth,Morris和Pratt。首先要了解失配函数:f(j) = i当且仅当i否则f(j) = -1也就是寻找部分匹配,j!=0时从失配字符开始和pf(j-1)+1重新开始比较,j==原创 2016-03-10 15:20:05 · 937 阅读 · 0 评论 -
求数列的全排列(递归解法)
问题很简单,求数列的全排列,比如一个数列1,2,3.它的全排列就是:1,2,31,3,22,1,32,3,13,1,23,2,1现在要用计算机来求,我只想到递归和回溯也只写了递归。然后去网上搜索发现很多很好的算法,比如移位置换什么的,复杂度很低也很好理解。那我写出来的最容易想到的递归写法,然后加了一个遍历去重,就是比如1,1,2这种数列不会出现两次1,1,2这种,因原创 2016-03-14 20:00:22 · 1563 阅读 · 1 评论