数据结构与算法1

1.认识时间复杂度

所谓时间复杂度,其实就是估计常数操作的一个指标

        1)常数

                int a = arr[i] 这就是一个常数操作,不管你数组有多大

                int b = list.get(i) 链表就不是一个常数操作,串行,不知道他next指针指到哪去

                + - * / 位运算 a+b 都是一个常数操作

                跟数据量无关的,是一个固定操作,我们就管他叫常数 

n + n-1 + n-2 +n-3 ....
n + n-1 + n-2 +n-3 ....
n
n方+

(n+ 1)n /2
a n放+b n +c

o(n²)

不要低阶项,只要最高项

异或运算

不同为1,相同为0,无进位相加

1) 0^ n = n   n^n=0

2)交换,结合  a ^ b  = b ^ a         (a^b^c) = a^(b^c)

必须保证a 的内存和b的内存不在一起

 如果在在一个位置,比如这样,如果值一样,就相当于自己^自己,你这么做,值就会摸成0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值