左神算法笔记-1 认识复杂度和简单排序算法

这篇博客深入介绍了算法中的复杂度概念,包括常数操作和时间复杂度的计算,并探讨了选择排序和冒泡排序的时间复杂度。此外,讲解了异或运算的应用及其在算法面试题中的角色,如快速找到数组中所有元素异或的结果。还讨论了插入排序和二分法,强调了它们的时间复杂度和适用场景,并提到了对数器在验证函数正确性中的作用。
摘要由CSDN通过智能技术生成

1、讲解常数操作(00:00)
定义:一个操作如果和样本的数据量没有关系,每次都是固定时间内完成的操作,叫做常数操作。
说明了什么是常数操作,在时间复杂度的计算中,常数操作为计数单元,一个操作是一个单元,但并不是所有的常数操作消耗的时间都是相同的。

2、时间复杂度(4:23)
描述一个算法中常数操作的数量的指标,一般是多项式去最高项并把系数置为1。

3、 选择排序(4:23) 代码(23:28)
时O(n^2) 空O(1) 不受数据序列的影响(以下简称不受)

流程:
①先从0~N-1找到最小值赋给0位置
②从1~N-1上找到最小值赋给1位置
	……
tips:利用minindex寻找最小值并实现交换不用频繁交换数组元素,只需更新索引值

4、 冒泡排序(26:48) 代码(29:00)
时O(n^2) 空O(1) 不受

流程:
①先排0 1位置,二者较大的冒泡
②1 2位置比较,二者较大的冒泡
	……
ps:除了左神的代码还有在刷乙级的时候看到的写法记得复习

5、 讲异或运算(31:45)
异或看作无进位相加。

用法①:相同的两个数异或必定为0(由此衍生下面的算法题)
用法②:任何数与0异或都是本身

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值