- 博客(26)
- 收藏
- 关注
原创 字符串匹配算法(BF算法与KMP算法)
BF算法也叫朴素算法,就是字面意思,简单粗暴的将主串和字串进行匹配当开始匹配 的时候,i和j同时往后跑, 一直到发生失配:匹配到这一步是的时候发生失配,失配之后字串回到头部,而主串回到i - j + 1的位置处也就是说,i必须回退到这次失配发生时的起点的下一个位置。然后继续匹配,重复上面的过程。一直到匹配成功或者主串遍历完都没有匹配到结果的话,就结束。可以看到,BF算法的时间复杂度很高,通常情况下他的时间复杂度为O(n*m),也就是O(n^2),其中n为主串的长度,m为字串的长度。
2023-07-25 19:28:18
86
原创 用俩个自己实现的队列实现一个栈
之后如果再要入栈,就往有数据的队列里面入。也就是先判断第一个队列是否为空,为空的话就直接向第二个队列里入,不为空的话就往第一个队列入值就行。执行完之后,Queue1的Front和Rear都指向的是最后一个入队也就是入栈的元素,在进行出栈也就是出队即可。在模拟栈的过程中,永远只有一个队列中有数据,有一个队列为空。俩个队列实现一个栈,最重要的地方在于入栈和出栈;可以看到,入栈的时候只往其中一个队列中入队就行;(先进先出):尾部进,头部出(一端进,另一端出),下面用俩个队列实现一个栈。
2023-07-23 22:50:42
42
1
原创 用俩个自己实现的栈实现一个队列
如果有元素的话,pop一个就可以了,如果stack2为空,那么就需要就stack1里面的元素依次插入到stack2里面。具体的实现过程就是,先取stack1的栈顶元素,然后插入到stack2里面,再将stack1的top元素pop。当入队的时候,也就是插入元素的时候,只往stack1里面插入,由于自己的栈实现了扩容,所以不用担心栈大小的问题(如果是链栈的话也不用考虑)。但是栈刚好相反,pop(出栈)时的顺序为9,2,1,6。用俩个栈取实现一个队列,就意味着一个栈只能进行push,另一个栈只能进行pop。
2023-07-22 18:30:08
104
1
原创 C语言,指针详解
什么类型的指针保存着什么类型数据的地址,也就指向什么类型的变量。在c语言中,允许一个变量存放指针变量的地址,就是所谓的多级指针(在后面会提到)。const与指针结合有俩种形式,第一种为const放在指针的前面,意思为指针指向的数据不能被修改;第二种为指针的后边,意思为指针本身不能被修改。char* 类型的指针+1和int* 类型指针+1所加字节数不相同,因此可以用来判断系统大小端存储模式。2)指针可以进行加减运算, +1即什么类型的指针加1*什么类型的字节。1)指针指向数组的时候保存的是数组首元素的地址;
2023-06-10 18:26:34
78
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人