数组,链表,跳表

     一.基础知识
     数组在内存空间开辟一块连续地址,可以根据索引查询.数组根据索引查询的时间复杂度是O(1),但删除和插入时间复杂度是O(n).
     链表弥补数组的保存和删除的设计不足,链表不需要一段连续空间,增加指针指向下一个元素的地址.链表删除和插入时间复杂度是O(1),但查询时间复杂度是O(n).
     跳表弥补链表的查询慢问题,可以增加若干级的索引,来降低链表的查询的时间复杂度O(log n),空间复杂度是O(n).
     链表是一维数据结构,增加额外索引,增加额外的内容空间,即以空间换时间,增加内存空间来减少操作时间.链表是一维数据结构,增加额外的索引,就相当于把一维数据结构升级为更高维度数据,即升维思想.

     二.解决思路
     解决数组方面的问题常见思路:左右靠近原则和双指针或使用数组或者哈希作为缓存形式.

原文地址:https://www.cnblogs.com/zhtzyh2012/p/14783520.html