左神算法笔记02

链表结构

单向链表,双向链表,暂时没将具体算法

栈、队列

用链表实现和用数组实现

递归行为

定义

在函数里调用自身,一般用来将大问题划分成多个小问题,简化问题。

主方法

T [ N ] = a ∗ T [ N b ] + O [ N d ] T[N] = a*T[\frac N b]+O[N^d] T[N]=aT[bN]+O[Nd]
时间复杂度为:
1: l o g a b > d log_ab > d logab>d时, O [ N ] = O [ N ( l o g a b ) ] O[N]=O[N^(log_ab)] O[N]=O[N(logab)]
2.: l o g a b > d log_ab > d logab>d时, O [ N ] = O [ N d ] O[N]=O[N^d] O[N]=O[Nd]
3. l o g a b = d log_ab = d logab=d时, O [ N ] = O [ N d ∗ l o g N ] O[N]=O[N^d*logN] O[N]=O[NdlogN]

哈希表

在传参时注意点

Java中int,double等类型为基本类型,传参时按值传递。Integer,Double等类型传参时是引用传递。
区别:

int a = 127;
int b = 127;
a == b;

结果为true,对具体数字无要求

Integer a = 127;
Integer b = 127;
a == b;

只有在具体数字x, − 128 < = x < = 127 -128 <= x <= 127 128<=x<=127时结果为true,其它为false。
因为在这个范围内内存是同一个。

增删改查

无论数据量多大,时间复杂度都为O[1]。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值