算法
文章平均质量分 93
学习算法
大筒木老辈子
这个作者很懒,什么都没留下…
展开
-
C语言高精度算法,包括加减乘除
根据我的理解,就是利用数组来存储数字并模拟实现计算过程。那为什么要进行这样麻烦的操作呢?众所周知,C语言提供的各种变量类型都是有上下限的,那么当我们要计算的数字超过了这个上下限的时候就无法存储,也更无法进行计算。于是我们就想到用数组来存储数据,将数组的每一个元素作为数字的一位,这样就可以将大的离谱的数据进行存储。当然存在数组中的数据自然无法利用算术操作符来进行运算,于是就要求我们编程来模拟实现算术过程。原创 2023-12-26 20:44:37 · 1252 阅读 · 2 评论 -
从一无所有的角度出发,带你一步步实现kmp算法
kmp算法就是在一个字符串中寻找子字符串的算法,其由D.E.Knuth、J,H,Morris和 V.R.Pratt三位大佬共同提出,所以叫kmp算法。该算法将解决该问题的时间复杂度,从原本暴力算法的O(n*m)降低到了O(n),尽管在数据量较小时并不能节省很多的时间,但是对于极大的数据量是很有意义的。这就是我所理解的kmp算法,核心有两个:1. 让i不回溯,这是让时间复杂度降低的根本所在。2. 根据上一次匹配留下的信息,使子字符串的前缀与已匹配部分的后缀相匹配。原创 2024-03-21 21:43:12 · 1221 阅读 · 11 评论 -
利用Base64加密算法将数据加密解密
Base64准确来说并不像是一种加密算法,而更像是一种编码标准。我们知道现在最为流行的编码标准就是ASCLL,它用八个二进制位(一个char的大小)表示了127个字符,任何二进制序列都可以用这127个字符表示出来。而Base64则是用6个二进制位表示了64个字符,也就是说,任何的二进制序列也都可以用这64个字符表示出来,这也是其名称的来源。我们加密的方法,就是将原来的信息以ACSLL的标准转化为二进制序列(如果不是6的倍数,就用0补齐),然后按照Base64的标准,将其转化为该标准下的字符。原创 2024-03-23 20:20:16 · 2376 阅读 · 13 评论