算法解读笔记

1、查找第N个元素时,数组比较快,链表比较慢。

  • 查找第N个元素时,利用数组中的下标可以直接查,但在链表结构中查找时需要从第 1 个元素开始顺序遍历而花费不少时间。

     

2、插入和删除数据时链表比较快,数组比较慢。

  • 在顺序排列的数据列中的特定位置插入新的数据时,数组要把插入位置后面的所有元素都向后移动。(删除也一样)

  • 对于链表,断开插入数据位置的前后的链,将新的数据连接到链表中就可以了。(删除也一样)

    插入数据时,通常只要把链断开,再将链重新连接,一次处理就能执行插入操作,时间消耗很少。

  • 执行数据的插入、删除操作时,利用链表的指针效率很高,但发生数据移动时花费的时间较多。

 

3、环形缓冲是数组的头尾相连的数据结构,尾元素的下一个元素即为头元素。

 

4、二叉树

  • 根据一个父结点和两个子结点的关系管理数据的结构称为二叉树。

  • 没有父结点的结点称为“根结点”,没有子结点的结点称为“叶结点”。

5、堆:父结点的值不得比子结点的值大的二叉树。(或父结点的值不得比子结点的值小的二叉树)

  • 堆在求最大最小值的时候效率比较高,直接可以从根结点得到。

原文地址:https://www.cnblogs.com/actionkong/p/3446439.html