2012年4月5日

二叉排序树

摘要: 1.定义二叉排序树(Binary Search Tree)又称二叉搜索(查找)树,其定义如下: (1)若它的左子树非空,则左子树上所有结点的权值都比根结点的权值小; (2)若它的右子数非空,则右子树上所有结点的权值都比根结点的权值大; (3)左、右子树本身又是一棵二叉排序树。以上既是二叉排序树的定义,同时也是它的性质。从定义可以看出,二叉排序树的定义是一个递归的定义。对于一棵二叉排序树的中序遍历则是一个递增有序序列。2.二叉排序树的插入Insert 根据二叉排序树的递归定义,进行插入操作的时候可以用递归实现,其插入过程如下: (1)如果二叉排序树为空,则创建一个关键字为key的结点,并将其作为 阅读全文

posted @ 2012-04-05 23:48 linzuxin 阅读(204) 评论(0) 推荐(0) 编辑

堆排序

摘要: 堆排序 堆排序是利用堆的性质进行的一种选择排序。下面先讨论一下堆。1.堆堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]<=key[2i+1]&&Key[i]<=key[2i+2]或者Key[i]>=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>=key[2i+2]称为大顶堆,满足 Key[i]<=key[2i+1]&&Key[i 阅读全文

posted @ 2012-04-05 23:39 linzuxin 阅读(154) 评论(0) 推荐(0) 编辑

mysql字段按照拼音排序

摘要: 我们的MySQL使用latin1的默认字符集,也就是说,对汉字字段直接使用GBK内码的编码进行存储,当需要对一些有汉字的字段进行拼音排序时(特别涉及到类似于名字这样的字段时),默认无法通过order by关键字正确排序。经过网上查找,网上的办法大多是针对使用utf8字符集的数据库,主要的方法有:1)直接转换字段为gbk,比如:SELECT * FROM table ORDER BY CONVERT( chinese_field USING gbk ) ;或者干脆将相应字段改为gbk字符集。 阅读全文

posted @ 2012-04-05 21:38 linzuxin 阅读(180) 评论(0) 推荐(0) 编辑

Mysql5.5.22源码编译安装

摘要: mysql 最新的版本都需要cmake编译安装,估计以后的版本也会采用这种方式,所以特地记录一下安装步骤及过程,以供参考。注意:此安装是默认centos下已经安装了最新工具包,比如GNU make,GCC,Perl,libncurses5-dev,如果在编译安装过程中发现有缺失的工具包,先yum install单独下载安装再继续即可。以下安装中涉及的几点需要提前说明的问题:1. 所有下载的文件将保存在 /usr/local/src/ 目录下2. mysql 将以mysql用户运行,而且将加入 service 开机自动运行3. mysql 将被安装在 /usr/local/mysql/ 目录下4 阅读全文

posted @ 2012-04-05 21:03 linzuxin 阅读(219) 评论(0) 推荐(0) 编辑

导航