数据结构与算法初识
数组:数组是一组连续的数据变量,数组的长度一旦确定就不可更改;
数组的优点在于读取的速度快,根据数组的地址和元素在数组的位置可以快速找到数据;
数组的缺点在于插入元素不方便。数组在内存中是一组固定长度的变量,一开始定义的时候就确定了数组的长度,如果想要对数组添加数据,那么需要重新开辟一块内存并将数据复制过去。有的人说,如果我一开始给数组定义的长度大一点不就行了?但你要明白,它存在两个缺点:一个是额外请求的位置用不上就会浪费内存,而是一旦数组饱满了,还是需要转移数据。
链表:链表是带有指向性的数据结构,每个链的位置存储数据信息和下一个链的位置信息。
我们可以以一个例子来说链表,就是寻宝藏。从藏宝图的第一站开始,每个藏宝的地方都有一个指向下个藏宝地方的地图。链表也是,每个链所在的位置存储一个数据和下一个链所在的位置。链是可以断开的,可以在中间插入一个链,所以链结构插入数据非常的快。但是,他也有缺点,那就是查找非常慢,假如我们想要知道最后一个链所在的位置,那么我们需要从第一个链开始,一步一步根据当前链指向下一个链的位置,花费了大量的时间。
数据结构指的是数据的存储方式,算法指的是问题的解决方式,对于不同的数据结构,有不同的算法。
对于一个问题,我们往往想要找出解决问题的最效率的方法。
针对算法解决问题的复杂度,有一个大O法,计算时间复杂度和空间复杂度(通常按照最复杂的情况下计算复杂度)。
下面是排序算法的时间与空间复杂度的总结。

如何写算法程序?
由简单到复杂:分步做,多次打印结果;

浙公网安备 33010602011771号