红黑树(red-black tree)是许多平衡搜索树中的一种,因此基本操作(查询、删除、搜索)等在最坏情况下的时间复杂度均为O(lgn)。13. 1红黑树的性质红黑树时一棵二叉搜索树,并且在每个结点上增加了一个属性表示颜色:红色或黑色。通过对任何一条从根到叶子的简单路径上各个结点的颜色进行约束,红...
分类:
编程语言 时间:
2015-02-19 22:57:57
阅读次数:
202
动态规划(dynamic programming)是通过组合子问题的解而解决整个问题的。分治算法是指将问题划分为一些独立的子问题,递归地求解各子问题,然后合并子问题的解而得到原问题的解。动态规划适用于子问题不是独立的情况,也就是各子问题包含公共的子子问题。在这种情况下,若用分治法则会做许多不必要.....
分类:
编程语言 时间:
2015-02-17 19:52:04
阅读次数:
284
一、快速排序的描述快速排序是基于分治策略的。对一个子数组A[p…r]快速排序的分治过程的三个步骤为:1、分解数组A[p…r]被划分成两个(可能空)子数组A[p…q-1]和A[q+1…r],使得A[p…q-1]中的每个元素都小于等于A[q],且小于等于A[q+1…r]中的元素。下标q也在这个划分过程中...
分类:
编程语言 时间:
2015-02-16 23:21:18
阅读次数:
338
搜索树数据结构支持多种动态集合操作,包括SEARCH、MINIMUM、MAXIMUM、PREDECESSOR、SUCCESSOR、INSRT和DELETE操作等。基本的搜索树就是一棵二叉搜索树。12.1什么是二叉搜索树1. 二叉搜索树的性质:设x是二叉搜索树中的一个结点。如果y是x左子树中的一个结点...
分类:
编程语言 时间:
2015-02-14 22:27:38
阅读次数:
351
/* * IA_11.4OpenAddressing.cpp * * Created on: Feb 12, 2015 * Author: sunyj */
#include #include #include class Node {
public: Node() { } Node(int64_t...
分类:
编程语言 时间:
2015-02-12 18:13:15
阅读次数:
286
/* * IA_11.2ChainedHash.cpp * * Created on: Feb 12, 2015 * Author: sunyj */ #include #include #include // CHAINED-HASH-INSERT(T, x)
// insert x at the...
分类:
编程语言 时间:
2015-02-12 13:44:15
阅读次数:
351
带哨兵的双向链表,代码中我使用了nullptr,所以需要编译器升级,我的编译器是gcc/g++ 4.7.0这是可以的,编译的时候加参数—std=c++0x 节点中还可能有卫星元素 /* * IA_10.2LinkedLists.cpp * * Created on: Feb 12, 2015 * A...
分类:
编程语言 时间:
2015-02-12 12:03:55
阅读次数:
175
1 /* 2 * IA_11.1DirectAddressTables.cpp 3 * 4 * Created on: Feb 11, 2015 5 * Author: sunyj 6 */ 7 #include 8 #include 9 #include 10 // D...
分类:
编程语言 时间:
2015-02-11 20:31:23
阅读次数:
401
离过年都不到十天了,还要等到这周五才能回家,想想也一年没回家了。从寒假开始到现在,已经有二十来天,这期间把2014年总结中的寒假计划也大多数完成了:The Element Of Style的阅读,三门数学课《随机过程》、《工程优化》、《数值分析》的算法实现。回家过年期间肯定不会写博客了,今天一看,这个月只写了三篇,于是乎今天必须再写一篇来完成这个月的基本工作量。言归正传,这篇文章写写选修课《算法设...
分类:
编程语言 时间:
2015-02-11 12:45:16
阅读次数:
265