哈希表查找
根据哈希算法填充数据,然后查找的时候首先计算哈希位置,然后对其位置的数据进行查找。
const (
// 数据已经被删除
Deleted = iota
// 哈希表的大小
MintableSize = 100
// 已经存在的合法数据
legimate = iota
// 数据为空
Empty = iota
)
// 哈希函数(自定义的,不可靠)
func MySHA(str interface{
}, tableSize int) int {
hashvar := 0
var chars []byte
// 传入值转为字符串
if strings, ok := str.(string); ok {
// 字符串转为字节数组
chars = []byte(strings)
}
// 遍历字节数组
for _, v := range chars {
// 哈希算法
hashvar = (hashvar<<17 | 123&1235 ^ 139) + int(v)
}
return hashvar % MintableSize
}
func MySHA256(str interface{
}, tableSize int) int {
// 创建加密对象
shaObj := sha256.New()
// 哈希
shaObj.Write([]byte(str.(string)))
// 加密后的字节数组
myChars := shaObj.Sum(nil