数据结构
Mumu2609
学习
展开
-
线性表
顺序存储结构顺序存储结构是一种随机存储的存储结构。线性表在c语言中可用动态分配的一维数组表示typedef struct{ ElemType *elem; int length; int listsize;}SqList;线性表中插入与删除一个元素的时间复杂度分析插入与删除一个元素的时间都主要耗费在移动元素上,时间复杂度都用O(n)。链式存储结构链式存储结构是非随机存取的存原创 2017-04-28 15:07:18 · 197 阅读 · 0 评论 -
排序
排序的稳定性排序的稳定性指的是带排序的记录序列中如果存在两个或两个以上的关键字相等的记录是,排序后能否保持原有的次序。插入排序插入排序的c语言实现void InsertSort(SqList &L){ if(LT(L.r[i].key,L.r[i-1].key)){ L.r[0] = L.r[i]; //哨兵 L.r[i] = L.r[i-1];原创 2017-04-28 17:52:38 · 278 阅读 · 0 评论 -
选择排序
简单的选择排序一趟简单选择排序就是通过n-I次关键字间的比较,从n-i+1个记录中选择关键字最小的记录,并和第I个记录交换。因此它的时间复杂度就是O(n2n^2)。树形选择排序树形选择排序就是先对n个记录的关键字进行两两比较,然后在其中n/2个较小者之间再进行两两比较,如此重复,直至选出最小关键字的记录为止。这个过程可用一棵有n个叶子结点的完全二叉树表示。在选出最小的关键字之后,若想选出次小关键字,原创 2017-05-02 19:59:07 · 350 阅读 · 0 评论 -
归并排序
2路归并排序归并排序的思想很容易,假设初始序列含有n个记录,则可看成是n个有序的序列,每个子序列的长度为1,然后两两归并,得到n/2个长度为2或1的有序子序列,再两两归并,直至得到一个长度为n的有序序列为止。,这种方法称为2路归并排序。 其算法代码如下void Merge(RcdType SR[],RcdType &TR[],int I,int m,int n){ for(j=m+1,k=原创 2017-05-02 20:31:59 · 288 阅读 · 0 评论 -
SkipList跳跃表
转载自:http://blog.csdn.net/ict2014/article/details/17394259 ”Skip lists are data structures that use probabilistic balancing rather than strictly enforced balancing. As a result, the algorithms f转载 2017-05-05 11:02:32 · 314 阅读 · 0 评论