
算法
文章平均质量分 58
Lightning-py
这个作者很懒,什么都没留下…
展开
-
Python实现非线性数据结构-字典、集合、树、图
存储键值对,内部使用哈希表实现。时间复杂度是 O(1), 创建、新增、查询、删除键值对,访问值、修改值。:无序的、不包含重复元素的数据结构。支持并集、交集、差集。内部使用哈希表实现。添加、删除、检查元素是否存在。非线性数据结构:数据不遵循线性顺序,根据特定的关系或规则来组织数据。:由节点和连接这些节点的边组成。分为有向图(边有方向)和无向图。每个节点有一个值并且可以有0个或多个子节点。原创 2024-10-22 11:04:15 · 315 阅读 · 0 评论 -
VInt编码简介
首先,将每个整数转换为VInt编码: 10的VInt编码为00001010 100的VInt编码为01100100 2000的VInt编码为11111010 00001000 30000的VInt编码为11110000 10001100 500000的VInt编码为10011110 01000000。BCD编码:BCD(Binary Coded Decimal)编码是一种将十进制数字转换为二进制编码的方式,每个十进制数使用4个比特位进行编码,常用于数字显示和计算机硬件中。现在要对这些整数进行VInt编码。原创 2024-01-22 15:43:59 · 577 阅读 · 0 评论 -
Python使用hashlib模块计算哈希值判断数据的相似性
在这个示例中,使用sha256算法计算了arr1中每个值的哈希值,然后在arr2中查找是否存在相同的哈希值。如果存在相同的哈希值,则表示arr2中存在与arr1中相同的值。这里需要注意的是,计算哈希值只能用于比较两个值是否相等,不能确定真实的值是否存在于另一个值中。所以这个方法只是通过哈希值的匹配来判断是否存在相同的值。在Python中,可以使用hashlib模块来计算字符串的哈希值。以下是一个示例代码,展示如何遍历arr1中的值,并从arr2中查找是否存在。原创 2024-01-05 15:03:48 · 500 阅读 · 0 评论 -
Python常见操作的时间复杂度计算
在Python中,不同操作的时间复杂度可以通过大O表示法来计算。以下是常见操作的时间复杂度计算:常数时间复杂度:O(1) 无论数据规模的大小,操作都可以在常数时间内完成。例如,访问列表或字典中的元素,执行算术运算等。线性时间复杂度:O(n) 操作的执行时间与数据规模n成正比。例如,遍历一个列表,求列表或字符串的长度等。对数时间复杂度:O(log n) 操作的执行时间随着数据规模n的增加而增加,但是不是线性增长。例如,在二分查找算法中,每次操作都能将搜索范围减半。原创 2023-12-27 17:56:25 · 1898 阅读 · 0 评论 -
Python标准库中的hashlib模块实现哈希算法
以上代码使用Python标准库中的hashlib模块,调用md5()方法创建MD5对象,使用update()方法更新要加密的数据,最后使用hexdigest()方法获取加密后的结果。原创 2023-07-19 10:36:57 · 449 阅读 · 0 评论 -
哈希及哈希算法介绍
哈希(Hash)是一种将任意长度的消息压缩到某一固定长度的算法。哈希算法将输入的消息通过一个哈希函数,将其转换为一定长度的固定输出。哈希在信息安全领域中广泛应用,例如数字签名、消息认证、密码学等。MD5:是较早的一种哈希算法,能够计算出128位哈希值。由于其算法安全性较低,已经被证明可以通过碰撞攻击进行破解。因此,在实际应用中,MD5已经被淘汰。SHA-1:可以计算出160位哈希值,相较于MD5,安全性更高一些。但是,由于其哈希值长度较短,也已经被证明可以通过碰撞攻击进行破解。SHA-2:包括SHA-224原创 2023-07-19 10:05:47 · 780 阅读 · 0 评论