10 2013 档案
摘要:一、这个已经有几年时间了,刚开始学习charlie的《windows程序设计》的时候做的。现在看来,代码很乱,虽然后来还整理过几次,现在这方面没什么兴趣了,有兴趣的可自由下载。二、绘制二叉树的伪代码int drawBinaryTree(BinaryTree bt){ Queue main; Queue slave; mian.enQueue(head node of bt); while (!empty(main)){ slave.clear(); for each node in main{ drawNode(node...
阅读全文
摘要:一、这次是在上一次尝试基础上进行的,预期是达到上次性能的9倍。MSD的基本手法就是不断切片。每一步都是把整体数据切割成256片,如上图所示,实际情况切片未必均匀,有的slice内可能一个元素也没有。接下来对于每个切片怎么办呢?答案是继续切,对于特殊数据来讲,切片过程可以很快结束,这样就可以实现比LSD更快的速度。这里面最困难的地方就是如何存储每个slice的头和尾。如果采用下述方式,应该是行不通的。这个方式需要做数组元素插入,还要跟踪中间数据,因此没具体考虑。我真正采用的是下表:表中第一项表示第一个元素开启一个类别,紧跟的0表示此元素和上面的1是同一类。至于2表明在切片过程中是一个孤立的元素,
阅读全文
摘要:为了完成二维数据快速分类,最先使用的是hash分类。前几天我突然想,既然基数排序的时间复杂度也不高,而且可能比hash分类更稳定,所以不妨试一下。在实现上我依次实现:1、一维数组基数排序基本解决主要问题,涵盖排序,包含改进的存储分配策略。如果用链表来实现,大量的函数调用将耗费太多时间。2、二维数组基数排序主要是实现和原有程序的集成。一、数据结构下面是存储节点的主数据结构。typedef struct tagPageList{ int * PagePtr; struct tagPageList * next;}PageList;typedef struct tagBucket{ ...
阅读全文
浙公网安备 33010602011771号