二分法,时间复杂度,动态数组,哈希表,有序表

1.二分法
一个有序数组  1,2,3,5,6,8,9,10
想找到9
二分法就先分一半 8/2=4   是6 小于9
看右边 继续分一半 6 8 9 10  刚好是9  返回


2.时间复杂度
常数操作 跟数据量 无关
比如在int数组 10亿个数  在里面找第3个数 跟第3000万个数 时间上是几乎一样  这就是常数

o(1)  o(logn) o(n)  o(n2) o(n3) ....o(2的n次方 指数)  o(n!)


3.动态数组
arrayList   扩容   从时间复杂度来说 他是o(n) 

4.哈希表--常数时间o(1)
HashMap
String 在这是值引用 

HashMap
对象 在这是地址引用 

5.有序表
treeMap  o(logn)
 

你可能感兴趣的:(培训记录,算法,数据结构)