跳表
在单链表中,更改指定索引的元素所需的时间复杂度度为 O(N),其中时间主要消耗在查询操作,需要从头遍历。如若利用“空间换时间”思想,即本文中的跳表方法,可将时间复杂度缩小至 O(log N)
1
2
3
4
5
indexLevel 0-----------------------8-----10
indexLevel 0-----------4-----------8-----10
indexLevel 0-----2-----4-----6-----8-----10
indexLevel 0--1--2--3--4--5--6--7--8--9--10
nodeLevel a->b->c->d->e->f->g->h->i->j->k
如上图所示,每向上一层,索引个数减少一半,故最多有logn 层索引,且每层索引不会遍历超过2次。
This post is licensed under CC BY 4.0 by the author.