自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(526)
  • 资源 (6)
  • 收藏
  • 关注

原创 用堆对大文件进行多路归并的在线算法程序

int  pos;表示文件号#define HEAP_CONTAIN   150#define   ORDER_TYPE   ushort#define  NIL    65535typedef  struct  wrap_data{  ORDER_TYPE  data;  int  pos;}wrap_data;wrap_data  min_hea

2011-12-22 11:26:48 779

原创 快速排序中对指针地址所指向的值进行排序的代码

static int compareweight(const void *arg1, const void *arg2)                                                                       {

2011-12-22 11:11:50 637

原创 禁用光标和调用函数接口的emacs配置

关于调用函数接口,按下esc + f  后就和按下esc +x  效果差不多   ,比如都可以调用函数indent-whole(defun  kill-now  ()

2011-12-18 13:01:42 515

原创 skew堆(相当于leftist的简化版)

#include  #include  #include  #define  NIL   99999#define   RAND   1000typedef  struct   _skew{  int  key; // int  dis;  struct _skew  *left;  struct  _skew  *right;}skew;typ

2011-12-14 11:41:23 879

原创 leftist (左偏堆,自动测试)

windows下运行正确,linux 却出错。主要是这行代码的问题。 wrapleftist  *temp = (wrapleftist *)( (int)(node)-sizeof (wrapleftist *) );windows下写为 wrapleftist  *temp = (wrapleftist *)( (int)(node)-4);用数字做了假定。 #incl

2011-12-12 18:46:04 767

原创 leftist (左偏堆,插入与弹出功能的实现)

与堆相比没有那么强烈的关系和限制。不过想想,如果要扩展原始堆,比如扩展为链表存储的形式,好像也就只能走左偏堆的路子。#include  #include  #define  NIL   99999typedef  struct   _leftist{  int  key;  int  dis;  struct _leftist  *left;  struct

2011-12-12 17:26:59 588

原创 结构之法

结构之法前面在对多路归并进行分析时,仔细研究了败者树这种结构,可以将复杂度有n*path降低为n*log path,这是结构的力量,不是原始的1对1的比较,而是1与部分分形结构的比较。再回忆下huffman树的构造过程中也有类似的现象。目前我们即将讨论的leftist在构建树的时候也会表现这点,比如以前在自己的堆构建过程中,采用的是暴力法,也就是没有利用累加的结构优势,同样的如果构建lefti

2011-12-12 16:10:13 769

原创 二项堆和信息论的关系分析

二项堆和信息论的关系分析如果是一个个数字插入到二项堆中,那可以看到二项堆所组成的小堆中所包含的元素个数的变化情况,是1,2,4,8。。。这样的过程。如果是一个个删除的话,显然可以看到相反的过程。那我们先看稳定状态下的查找状况,查找最小的元素的时间复杂度是log n,调整恢复状态的时间复杂度也是log n.仔细想一下,这里log n的来源与多路归并中的层数确定方式是一样的,主要有如下关系存在

2011-12-11 23:26:05 402

原创 关于信息的存储

关于信息的存储简单地说可以分为明文和密文,比如一个很大的数字,4个字节能表示的,假设为11111111111111,很明显它所表达的十进制的长度会比4要长,而造成这种情况的原因是1个字节在二进制结构中确实能表示256中不同的选择,而在明文中,还是以数字为例子,确实又只能表示10种选择。造成不一样的本质在于一个是信息的基础表示,一个是抽象表示,因为基础表示要考虑到字符等其他东西,而抽象表示不需要

2011-12-11 21:05:40 572

原创 自动测试二项堆的插入和弹出

#include  #include  #include  #define  NIL  10000#define  MAX  10000#define   RAND   10000typedef  struct  _binheap{int  key;int degree;struct  _binheap  *parent;stru

2011-12-11 20:26:37 469

原创 二项堆(减小关键字的值和删除指定关键字)

注意观察注释掉的代码#include  #include  #define  NIL  9999typedef  struct  _binheap{int  key;int degree;struct  _binheap  *parent;struct  _binheap  *sib;struct  _binheap  *child;}binhe

2011-12-11 19:09:21 1073

原创 安装linux需要注意的问题

/         6000M /home     3000M /tmp      1024M /usr      6000M /boot     100M swap      1024M /var      剩下的所有 装完CentOS,启动后默认是进入图形界面,不熟悉,只需要设置/etc/inittab,修改以下行:id:5:initdefaul

2011-12-11 11:01:29 644

原创 排序功能完备的二项堆

插入的时候采用了不同的数据插入顺序,但排序的结果是一样的。level=0  key=33 level=1  key=55 level=0  key=12 level=1  key=21 level=2  key=77 level=3  key=221 level=2  key=345 level=1  key=44 level=2  key=67 level

2011-12-09 10:11:49 378

原创 linux界面操作程序

#define FLAG_TA            (1#define FLAG_TC               (1#define FLAG_REMAIN                 (1#define FLAG_LINK                (1#define FLAG_TERM                (1#define FLAG_HELP

2011-12-08 13:13:53 616

原创 四个救命的函数

ssprintffsprintfsscanffscanf

2011-12-08 11:58:32 1317

原创 对硬盘文件进行二分查找

uint32_t  binary_search_file(FILE *fpfile  ,int  m_termcount , int single_length,  uint64_t  termsign){  int low=0,high=m_termcount-1;  int mid;   char  *ptemp=(char *)calloc ( single_length

2011-12-07 23:33:06 1093

原创 比bitmap慢但不占用太大空间的字符串文本匹配版

int  is_hotword(wchar  wc,const char *path){    char  filename[100]="\0";    sprintf(filename,"%s/%s",path,"hotword.txt");    static  FILE   *fp=NULL;    static  char  hotword[256]="\0";

2011-12-07 10:14:43 624

原创 urlno的压缩和解压缩

//codeuint32_t urlno = ptmpUWArray[i].urlNo - cururlno;cururlno = ptmpUWArray[i].urlNo;/**佸弫獊鍋佺悊urlno */while ((urlno & ~0x7F) != 0) {pOPBuf[j++] = (urlno & 0x7f) | 0x80;urlno >>= 7;m

2011-12-07 09:49:12 657

原创 插入和打印功能完备的二项堆

其中在union时时候故意加的wrap_head很有意义,另外打印阶段采用的是深度优先,还能打印合理的层数. #include  #include  #define  NIL  9999typedef  struct  _binheap{ int  key; int degree; struct  _binheap  *parent; struct  _bi

2011-12-04 22:33:44 566

原创 很不错的Makefile管理的工程

## Makefile#COMM_DIR=commonSPLIT_APP_DIR=splitBUILD_APP_DIR=buildRELEASE_DIR=releasecurDate=shell(date +%F)all: mk_project mk_releasemk_project:        cd $(COMM_DIR); make

2011-12-02 13:13:36 547

原创 第一个Makefile文件(可以用来编译前面红黑树的实现程序和测试程序)

## split Makefile#AR=arARFLAGS=-crCC=gccSRC=rbtree_test.c  red_black_tree.cSRCC=OBJ=$(SRC:.cpp=.o)OBJC=$(SRCC:.c=.o)OBJ_DBG=$(SRC:.cpp=DBG.o)OBJC_DBG=$(SRCC:.c=DBG.c.o)CXX_FLAG

2011-12-02 12:54:07 1549

原创 hash存储,序列化和调整大小平衡

#include #include #include "hashdict.h"templateEA_COMMON::CHashDict::CHashDict(){}templateEA_COMMON::CHashDict::~CHashDict(){}templateEA_COMMON::ENUM_HASHDICT_OPTYPE EA_COMMON::C

2011-12-02 10:11:01 902

原创 将任意数字转化为对应gbk输出的程序

#include  #include  int main (){  int  i;  char  word[5]={0};  while  (scanf("%d",&i)   &&   i)    {      word[0]=i/256;      word[1]=i%256;      printf("%s\n",word);    }}

2011-12-01 14:20:29 927

原创 红黑树用来存储单个汉字GBK编码

#include  #include  #include  #define   RAND   10000int  error_label=0;#pragma  pack(1)typedef   enum  _color  {    RED,    BLACK  }color;typedef   struct  _data{  int  v

2011-12-01 10:19:24 1052

原创 能够处理冲突的散列表(中文文本匹配)

#include #include #include "tries.h"#include "dicthead.h"#define DEF_TRIES_DIC_VERSION 1struct STRU_TRIES_INN_NODE{  unsigned int m_uiLen;  unsigned int m_uiAttr;  unsigned int m

2011-11-30 11:35:10 1040

原创 让emacs完美显示中文

(set-language-environment 'Chinese-GB)                                                                                             (set-keyboard-coding-system 'euc-cn)

2011-11-29 18:45:37 3875

原创 经过自动压力测试的红黑树(删除功能完备)

#include  #include  #define   COUNT   10000#define   RAND    (4*COUNT)int  error_label=0;#pragma  pack(1)typedef   enum  _color  {    RED,    BLACK  }color;typedef   struct  _d

2011-11-28 18:05:45 676

原创 linux 动态库和静态库的编译

g++  -shared  -fpic  -o  libeaconfig.so  eaconfig.cppg++   -o  t mytest.c  ./libeaconfig.so$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$g++  -c  eaconfig.cppar  -cr  libea

2011-11-28 17:39:48 603

原创 我的emacs配置

;; .emacs;;; uncomment this line to disable loading of "default.el" at startup;; (setq inhibit-default-init t);; turn on font-lock mode(when (fboundp 'global-font-lock-mode)  (global-font-lo

2011-11-28 15:32:35 458

转载 采用算法导论思维的红黑树

/****************************************************************************** * red_black_tree.c                                                            *  * Download From:

2011-11-22 13:21:41 633

原创 关于树的最少节点数

关于树的最少节点数对于AVL树,因为定义的限制,需要满足如下关系a(n)=a(n-1)+a(n-2)+1存在,所以采用差分的方法是可以推出最后的精确结果的。对于满二叉树,采用国际上的定义,它的最少节点数不是以前习惯想的那样,因为按照新定义,huffman树也是属于满二叉树,按照直觉思维,它的最少节点数应该是这样的,根节点一个,其它每层都有两个节点,当然它的变化形式是多种多样的。可以这样计算

2011-11-22 08:25:10 1780

原创 从信息的角度看数字的表示和分割(败者树多路时的层数,树状数组求和时的次数,skiplist层数的确定)

从信息的角度看数字的表示和分割(败者树多路时的层数,树状数组求和时的次数,skiplist层数的确定)当用二进制表示数字时,除了进位关系外,还可以获得一些更弱但更有意义的联系存在。比如思考一个任意的数字它的二进制中1的分布情况,从人的思维角度看,是先看它的最高位应该在哪里?然后采用递归的方法,最后可以完全确定下来。而在观察数字的增长过程中,数字1分布的变化情况,其中体现的是当数字达到2^n次方

2011-11-20 21:11:35 685

原创 grep与sed,awk语义中的共同部分(筛掉特定字符串)

awk  '$0 !~/printf/'  my.c.tempsed  '/printf/d'  my.c.tempgrep -v  printf  my.c.temp   筛掉文件中包含printf的行。

2011-11-18 13:49:36 340

原创 grep与sed,awk语义中的共同部分

sed -n '/print/p'  my.c.tempawk  '/print/'  my.c.tempgrep  print  my.c.temp 这三行代码的出的结果完全一样。 另外对于sed,以下两行命令意义一样.sed   -n  '/print/p'   my.c.tempsed  -n 's/print/&/p'  my.c.temp

2011-11-18 13:12:21 442

原创 awk 条件打印

awk -F":"   '{print $2==20?     $0:    $1}'  chen.data  chen.data文件内容为:data:10:1000us:1:32data:20:3000llsd:9:56kk:8:667data:100:2000dat:123:9000结果为(如果第二条记录为20,则打印全行,否则打印第一个记录)dat

2011-11-18 10:51:59 3378

原创 emacs 执行数学计算函数fib

(defun  fib (n)                      (if (eq  n  1)                                1                                     (if  (eq  n 2)                                1

2011-11-18 09:45:52 699

原创 emacs 统计字符的个数

(defun  countword ()             (interactive )                        (let  (( number  0))                   (goto-char  (point-min))              (while (         (forward-word  1)

2011-11-18 09:41:50 1379

原创 用awk进行动态计算

[boris@localhost ~]$ (echo  "1&20"   |   awk  -F "&"  '{print $1+ $2}'    )    21[boris@localhost ~]$ (echo  "1&20"   |   awk  -F "&"  '{print $1+ $2}'  |  awk  '{print  $0+100}'  )121[boris@l

2011-11-17 14:10:08 877

原创 sed 过滤字符文本 (一行行的)

前面写过用sed对整个文件过滤的,代码很简单。现在这个是能够取出其中的一行行来过滤的,为了获取更多的相关信息。 注意列表中的空格先变为_,然后再变回来,不然会出错。 #/bin/shi=$( grep   "chenbing"  my.c.temp  | sed  's/\ /\_/g'  | awk -F "chenbing"  '{print$1}')echo $i

2011-11-17 13:30:40 3196

原创 emacs 中的ring

34  67  89  2223  44  55  775  332  345  675  4234  123  565  345  98  1213  9876  90  353  4242                                   left  ring

2011-11-15 18:54:22 617

指针重要描述

指针重要描述 指针重要描述 指针重要描述

2008-01-16

opcodes解析

x86 opcodes

2007-12-28

vb pcode反编译代码

pcode 反编译

2007-12-28

指针精华例子

指针精华指针精华指针精华指针精华指针精华

2007-05-25

vb之神vb之神vb之神

vb之神vb之神vb之神vb之神vb之神vb之神vb之神

2007-04-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除