一 插入排序简单插入排序希尔排序二 快速排序三 选择排序简单选择排序树形选择排序堆排四 归并排序五 基数排序
分类:
其他好文 时间:
2014-09-16 10:32:30
阅读次数:
178
就平均时间性能而言,二叉排序树上的查找和二分查找差不多。静态查找:数据集合稳定,不需要添加,删除元素的查找操作。动态查找:数据集合在查找的过程中需要添加或删除元素。 就表的有序性而言,二叉排序树无须移动结点,只需修改指针即可完成插入和删除操作,且其平均的执行时间均为O(lgn),因此更有效。二分查找...
分类:
其他好文 时间:
2014-09-16 00:09:19
阅读次数:
177
多看几遍索引操作将原始数据引入可被高效查找的对照表中,以便能够对这些内容进行快速搜索。这里的对照表的结构是什么样的?是二叉排序树还是红黑树?索引是一个精心设计的数据结构。
分类:
其他好文 时间:
2014-09-15 14:16:48
阅读次数:
122
#include
using namespace std;
// 有序二叉树(二叉搜索树)
class Tree {
public:
// 构造过程中初始化为空树
Tree (void) : m_root (NULL), m_size (0) {}
// 析构过程中销毁剩余节点
~Tree (void) {
clear ();
}
// 插入数据
void insert (in...
分类:
其他好文 时间:
2014-09-13 22:52:02
阅读次数:
207
Hash表也称散列表,也有直接译作哈希表,Hash表是一种特殊的数据结构,它同数组、链表以及二叉排序树等相比较有很明显的区别,它能够快速定位到想要查找的记录,而不是与表中存在的记录的关键字进行比较来进行查找。这个源于Hash表设计的特殊性,它采用了函数映射的思想将记录的存储位置与记录的关键字关联起来...
分类:
其他好文 时间:
2014-09-13 10:36:25
阅读次数:
242
题目连接:点击打开链接
在树结构中,有一种特殊的二叉树叫做排序二叉树,直观的理解就是——(1).每个节点中包含有一个关键值 (2).任意一个节点的左子树(如果存在的话)的关键值小于该节点的关键值 (3).任意一个节点的右子树(如果存在的话)的关键值大于该节点的关键值。现给定一组数据,请你对这组数据按给定顺序建立一棵排序二叉树,并输出其中序遍历的结果。
输入
...
分类:
其他好文 时间:
2014-09-11 23:52:22
阅读次数:
184
选择排序:每一趟在n-i+1(i=1,2,...,n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。
一、简单选择排序
一趟选择排序操作:
通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1
对L[1...n]中记录进行简单选择排序的算法为:令i从1至n-1,进行n-1趟选择操作...
分类:
其他好文 时间:
2014-09-11 20:59:22
阅读次数:
127
这是利用treap写的二叉排序树,只要理解其中旋转能够改变树的左右子树平衡度,即高度之差,差不多就能掌握treap树的要领了。相对于其他高级BST,treap树实现应该算最简单了,利用的是随机树产生的理论的二叉排序树时间复杂度为O(nlgn)来实现,具体证明 算法导论 中有。推荐NOCOW中的讲解,...
分类:
其他好文 时间:
2014-09-11 20:52:12
阅读次数:
316
参考:http://student.zjzk.cn/course_ware/data_structure/web/chazhao/chazhao9.3.1.1.htm 1 #include "stdafx.h" 2 #include 3 4 typedef int InfoType; ...
分类:
其他好文 时间:
2014-09-11 11:03:41
阅读次数:
169
T4: 求逆序对A[I]为前缀和推导 (A[J]-A[I])/(J-I)>=MA[j]-A[I]>=M(J-I)A[J]-M*J>=A[I]-M*I设B[]=A[]-M*();B[J]>=B[I]也就是求逆序对;求逆序对的方法主要有两种: 归并排序; 树状数组;这里两种方法都学习一下:1.之前对于树...
分类:
其他好文 时间:
2014-09-09 11:56:48
阅读次数:
262