# Algorithm **Repository Path**: fanhx9/Algorithm ## Basic Information - **Project Name**: Algorithm - **Description**: 记录工作中遇到的算法 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2014-08-29 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 此项目意在学习以下技术: 1.常用排序算法 2.常用搜索算法 3.数据挖掘算法 4.以及其他算法技术 Hash算法: 1.一个字符串的hash算法有很多种,其中都是根据每个(字符位移 + 一个变量) 2.一个好的hash算法是(效率 + 尽量少的冲突) 3.发生冲突后,采用拉链法解决 4.hash算法是将时间复杂度变成O(1) 5.采用hash能减少内存使用量(采用int类型代替string) 6.使用hash需要用映射转化 案例想象: 1. 参考: 经典hash算法 http://www.cnitblog.com/schkui/archive/2007/07/02/29320.html Hash算法: 1.除法取余 2.平方后右移[(x * x) >> 28)] 3.斐波那挈右移(* 黄金数据)>>28 16位整数=40503 32位整数=2654435769 64位整数=11400714819323198485 算法时间复杂度: 快速排序最好时间复杂度是nlg(n),最坏就是冒泡排序n*n 参考:http://blog.sina.com.cn/s/blog_771849d301010ta0.html