摘要: 如何防止数据库中的用户信息被脱库? MD5、SHA 什么是哈希算法?将任意长度的二进制值串映射为固定长度的二进制值串,这个映射的规则就是哈希算法,而通过原始数据映射之后得到的二进制值串就是哈希值。 MD5的哈希值是128位的bit长度 哈希算法的应用:安全加密、唯一标识、数据校验、散列函数、负载均衡 阅读全文
posted @ 2020-03-31 22:14 LinBupt 阅读(573) 评论(0) 推荐(0) 编辑
摘要: Word文档中的单词拼写检查功能。 常用英文单词有20万个左右,假设单词的平均长度是10个字母,大约总共占2MB的存储空间,这个大小完全可以放在内存里面 散列表HashTable 散列表用的是数组支持按照下标随机访问数据的特性,所以散列表其实就是数组的一种扩展,由数组演化而来。可以说,如果没有数组, 阅读全文
posted @ 2020-03-31 21:35 LinBupt 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 最省内存的方式实现二分查找,1000万的数据如何快速判断某个数是否在这个数据集中。100M的内存限制。 用数组存储1000万个正数,大概需要80MB,但用散列表、二叉树这些数据结构所需空间会大于80M,不符合空间限制 如何快速定位IP对应的省份地址 IP地址转化为32位整型数,按照起始位置从小到大排 阅读全文
posted @ 2020-03-31 16:45 LinBupt 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 对于小规模的数据,O(n**2)的排序算法性能可能比O(nlogn)的排序算法更好 归并排序适合与占用空间比较小的数据集 在其他语言中,插入排序比冒泡排序更好是因为冒泡排序交换需要3个赋值语句,而插入排序只需要一个 冒泡排序和插入排序的交换次数都等于逆序度,无论怎么优化,但最好情况的时间复杂度都是O 阅读全文
posted @ 2020-03-31 16:04 LinBupt 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 前缀索引:可以定义字符串的一部分作为索引 使用前缀索引,好处是所占用的空间会更小 缺点是可能会增加额外扫描次数,可能对导致覆盖索引失效 使用前缀索引,定义好长度,就可以做到既节省空间,又不用额外增加太多的查询成本。 在建立索引时关注的是区分度,区分度越高越好。因为区分度越高,意味着重复的键值越少。因 阅读全文
posted @ 2020-03-31 09:52 LinBupt 阅读(494) 评论(0) 推荐(0) 编辑
摘要: 1 Create TABLE ‘t'( 2 'id' int(11) not null, 3 'a' int(11) default null, 4 'b' int(11) default null, 5 primary key ('id'), 6 key 'a' ('a'), 7 key 'b' 阅读全文
posted @ 2020-03-31 09:41 LinBupt 阅读(296) 评论(0) 推荐(0) 编辑