- 博客(16)
- 资源 (12)
- 收藏
- 关注
转载 浅谈MySQL索引背后的数据结构及算法
摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。 文章主要内容分为四个部分
2012-09-28 22:55:53 311
原创 快速排序的非递归实现
#include #include using namespace std; void print_array(int array[], int len) { for (int i = 0; i { cout } cout } int Partition(int array[], int low, int high) { int t
2012-09-23 23:19:38 239
原创 插入排序 和 快速排序
#include using namespace std; void print_array(int array[], int len) { for (int i = 0; i < len; i++) { cout << array[i] << " "; } cout << endl; } //插入排序 void InsertSort(int array[], i
2012-09-20 22:55:43 258
转载 js变量以及其作用域详解
一、变量的类型 Javascript和Java、C这些语言不同,它是一种无类型、弱检测的语言。它对变量的定义并不需要声明变量类型,我们只要通过赋值的形式,可以将各种类型的数据赋值给同一个变量。例如: i=100;//Number类型 i="variable";//String类型 i={x:4};//Object类型 i=[1,2,3];//Array类型
2012-09-19 09:58:56 275
原创 大整数加减乘除的实现
#include using namespace std; const int MAXLEN = 100; class Integer { private: int is_neg; //是否为负 int len; // 位数 int s[MAXLEN]; // 表示整数的数组 char str[MAXLEN]; //
2012-09-18 18:57:21 309
原创 二叉树的常见问题及其解决程序 (原创)
二叉树的问题 1.二叉树三种周游(traversal)方式: 二叉树的问题 1.二叉树三种周游(traversal)方式: 2.怎样从顶部开始逐层打印二叉树结点数据 3.如何判断一棵二叉树是否是平衡二叉树 4.设计一个算法,找出二叉树上任意两个节点的最近共同父结点,复杂度如果是O(n2)则不得分。 5.如何不用递归实现二叉树的前序/后序/中序遍历? 6.在二叉树中找出和为某
2012-09-18 14:16:44 497
原创 链表逆序
#include using namespace std; typedef struct LinkNode { int data; LinkNode *next; } *Node; Node linkReverse(Node head) { Node ptr = NULL; Node previous = NULL; while (head->next) { ptr = he
2012-09-17 10:06:16 260
转载 B树、B-树、B+树、B*树、红黑树rbtree 二叉排序树、trie树Double Array 字典查找树
B 树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如:二叉排序树、trie树Double Array 字典查找树" style="margin-top:0
2012-09-16 17:07:35 2861
转载 数据结构之红黑树
1. 简介 红黑树是一种自平衡二叉查找树。它的统计性能要好于平衡二叉树(AVL树),因此,红黑树在很多地方都有应用。在C++ STL中,很多部分(目前包括set, multiset, map, multimap)应用了红黑树的变体(SGI STL中的红黑树有一些变化,这些修改提供了更好的性能,以及对set操作的支持)。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的:
2012-09-16 16:49:32 937
原创 java的垃圾回收机制
java的垃圾回收机制对于java体系结构的学习非常重要。这里将阅读的一些文献整理总结出来,记述java的几种垃圾回收算法。 垃圾回收算法有两个基本的问题:1.必须检测到垃圾对象。2.必须重新声明被垃圾对象占用的堆空间并且让堆空间可用。 可达性(reachability) 一个对象是可达的,当且仅当从可执行程序的根集开始有引用路径能访问该对象。 根集(roots set)
2012-09-08 22:12:56 256
原创 构造函数和析构函数中的虚函数
构造派生类对象时首先运行基类构造函数初始化对象的基类部分。在执行基类构造函数时, 对象的派生类部分是未初始化的。实际上,此时对象还不是一个派生类对象。 撤销派生类对象时,首先撤销它的派生类部分,然后按照与构造顺序的逆序撤销它的基类部分。 在这两种情况下,运行构造函数或析构函数的时候,对象都不是完整的。为了适用这种不完整, 编译器将对象的类型视为在构造和析构期间发生了变化。在基类构造函数或析
2012-09-07 10:29:04 335
原创 构造函数和赋值操作符不是虚函数
在复制控制函数中,只有析构函数应定义为虚函数,构造函数不能定义为虚函数。构造函数是在对象完全构造之前运行的,在构造 函数运行的时候,对象的动态类型还不完整。 虽然可以在基类中将成员函数operator=定义为虚函数,但这样做并不影响派生类中使用的赋值操作符。每个类有自己的赋值操作符, 派生类中的赋值操作符有一个与类本身类型相同的形参, 该类型必须不同于继承层次中任意其他类的赋值操作符的形参类
2012-09-07 10:14:52 631
原创 顺时针打印矩阵
/************************************************************************/ /* 顺时针打印矩阵 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字 */ /************************************************************************/ #i
2012-09-05 12:07:40 261
原创 二叉树的常见问题及其解决程序
二叉树的常见问题有如下几个,如果解决好了,就跟链表一样轻松:唯一不一样的是,二叉树是非线性结构。常见的问题如下: 二叉树的问题 1.二叉树三种周游(traversal)方式: 二叉树的问题 1.二叉树三种周游(traversal)方式: 2.怎样从顶部开始逐层打印二叉树结点数据 3.如何判断一棵二叉树是否是平衡二叉树 4.设计一个算法,找出二叉树上任意两个节点的最近共同父结点,复
2012-09-03 22:35:58 532
转载 srand()以及rand()函数用法
srand()就是给rand()提供种子seed 如果srand每次输入的数值是一样的,那么每次运行产生的随机数也是一样的, srand(n) for(10) rand() 也就是说,以一个固定的数值作为种子是一个缺点。 通常的做法是 以这样一句代码srand((unsigned) time(NULL));来取代,这样将使得种子为一个不固定的数, 这样产生的随机数就
2012-09-02 10:36:16 561
原创 数组生成的所有集合
/************************************************************************/ /* 数组生成的所有集合 */ /************************************
2012-09-01 20:21:24 276
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人