图解算法读书笔记1-2章

图解算法读书笔记

1.一些常见的大O运行时间

O(log n)也叫对数时间,这样的算法包括二分查找

O(n)也叫线性时间,这样的算法包括简单查找

O(n*log n)也叫对数时间,这样的算法包括快速排序,较快

O(n²)也叫对数时间,这样的算法包括选择排序,较慢

O(n!)非常慢

算法的速度指的并非是时间,而是操作数的增速

讨论算法的速度时,我们说的是随着输入的增加,其运行时间将以什么样的速度增加

##2.链表与数组

数组在内存中的空间是连续的。

就是像是一个一个横向紧邻有标号的格子。

好处是:读取第n个数很方便,打开对应的标n的格子就行,时间复杂度为O(1)。

坏处:临时插入需要另外的转移数据,插入的成本为O(n)。可以在定义数组时,多定义一些格子(内存);删除元素需要将后面的元素前移。


链表的内存空间不是连续的。

一个格子里存的是下一个的地址

好处:插入数据很方便,临时加入数字不需要转移数据;删除元素只要改变前一个元素指向的地址即可

坏处:读取第n个数需要先读取前面的n-1个数;


选择排序

比如:2,3,6,7,4,1,9,10

首先在整个数列找最大的数10,然后在剩下的数据中找最大的数9,…直到倒数第二的3,倒数第一的2

该算法的时间复杂度为O(n²)

总结:

计算机的内存犹如一大堆抽屉

需要存储多个元素时,可使用数组或链表

数组的元素都在一起

链表的元素时分开的,其中每个元素都存储了下一个元素的地址

数组的读取很快

链表的插入和删除速度很快

在同一个数组中,所有元素的类型都必须相同(都为int,double等)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值