SkipList介绍
1. SkipList(跳表),在理论上能够在O(log(n))时间内完成查找、插入、删除操作。SkipList是一种红黑树的替代方案,由于SkipList与红黑树相比无论从理论和实现都简单许多,所以得到了很好的推广。SkipList是基于一种统计学原理实现的,有可能出现最坏情况,即查找和更新操作都是O(n)时间复杂度,但从统计学角度分析这种概率极小。使用SkipL...
分类:
其他好文 时间:
2015-04-13 19:01:10
阅读次数:
350
Sort a linked list using insertion sort.这道题是用链表做插入排序。虽然之前数据结构中学习了链表的插入删除等,但那些都是最简单的基本操作,只是给出一个节点,直接给出插入位置。首先,插入排序的思想是,每次将一个元素插入到前面已排序的有序的链表中,因此首先要找到需要...
分类:
其他好文 时间:
2015-04-13 15:57:47
阅读次数:
100
在数据结构与算法中,给我们介绍了常用的几种数据结构:数组,链表,哈希表。
数组结构:其在内存分配是一段连续的内存空间,可能会占用内存空间严重,空间复杂度很大,时间复杂度小,其优点是易于寻址,但是插入、删除困难。
链表结构:其在内存分配是一系列离散的内存空间,占用内存少,空间复杂度很小,时间复杂度很大,其优点是易于插入和删除,寻址困难。
哈希表:哈希表是集合数组和链表的存储结构,满足寻址方便,易于操作,占用内存空间较小,时间复杂度有较小。其例如下:
...
分类:
其他好文 时间:
2015-04-11 20:54:44
阅读次数:
144
面试中常常会遇到算法的问题 而基础算法的考核离不开链表和二叉树,下面是对这两种数据结构常见问题的总结1、链表#include
#include
#include/*
链表的总结 插入 删除以及遍历
以及链表相关的应用
*/// 链表的结构// 插入 若第一个节点为空则需啊替换 所以传递的参数必须是指针的指针 否则修改无效stru...
分类:
编程语言 时间:
2015-04-11 00:02:16
阅读次数:
209
杂谈:最近清明小长假,好好的放松了一下。节前 和 节后 都有点 松懈。不好,不好。贵在坚持。加油。
图的邻接矩阵表示法是用 两个数组 来表示 图的数据结构。一个是顶点数组,另一个是邻接矩阵数组。邻接矩阵 里存放着 顶点的关系。
用邻接矩阵表示图,在 看 顶点之间 是否有边,或者 求顶点的度等操作时比较简单。但空间浪费巨大,在插入,删除 顶点 和边 操作时 需要 移动大量数据,造成不便。所以在插...
分类:
其他好文 时间:
2015-04-08 15:11:05
阅读次数:
131
优先队列和堆排序标签(空格分隔): 排序算法 数据结构优先队列和堆排序
优先队列
堆
1 基于堆的算法
初始化
自底向上堆化
自顶向下堆化
插入删除一项
2 堆排序
优先队列全部代码
1 优先队列普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出 (largest-in,first-...
分类:
编程语言 时间:
2015-04-08 10:59:15
阅读次数:
214
题解:
首先肯定要用线段树。
如果没有强制在线,那么直接把询问排个序然后按秩插入、删除、查询。普通线段树就好了,但是这道题强制在线,就需要可持久化线段树了。
线段树的每个区间记录[x:这段区间有的权值总和]、[n:这段区间有多少个权值][x:这段区间有的权值总和]、[n:这段区间有多少个权值]
然后每个版本表示一个时间点的线段树。
这道题每个版本可能有多个节点被修改,所以我们可以先当成多...
分类:
其他好文 时间:
2015-04-08 10:56:19
阅读次数:
168
之前学过,数据描述方法中有公式化描述,链表描述,间接寻址和模拟指针,在之前已经将公式化描述和链表描述通过代码的形式展现出来了,现在贴出简介寻址的代码。其中简介寻址是融合了公式化描述和链表描述的有点,使用一个指针表来记录数据的位置,指针表相当于一个数组,这样在插入,删除的时候,其中的数据的位置并没有发生变化,而仅仅就是指针表的指向发生了变化,同时很多操作又能像公式化一样通过O(1)的复杂度进行操作。下...
分类:
编程语言 时间:
2015-04-07 17:39:00
阅读次数:
114
栈是在一端进行插入和删除的线性表。栈顶---允许插入、删除的这一端,栈顶的当前位置是动态变化的;不允许插入和删除的一端称为栈底,栈底是固定不变得,当表中无元素时称为空栈。对栈的常用操作有:栈 初 始 化: Init_Stack()初始条件:栈不存在操作结果:构造了一个空栈判 断 空:Empty_.....
分类:
编程语言 时间:
2015-04-06 11:23:44
阅读次数:
150
StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操....
分类:
编程语言 时间:
2015-04-05 01:01:28
阅读次数:
184