算法学习
solari_bian
这个作者很懒,什么都没留下…
展开
-
编程珠玑(第二版)读书笔记【1、2】
第一章问题:一个文件F,包含最多1000万条无序的、不重复的记录,每条记录都是一个7位的十进制正整数,利用1MB左右的内存空间,按照整数的大小对文件进行升序排序,将结果保存到文件FO中。 分析:1MB内存,共有1024*1024*8=8388608bit,如果原创 2011-05-10 21:54:00 · 1103 阅读 · 0 评论 -
强盗分赃问题的计算机求解
1.问题描述n个强盗(编号1,2,3,…,n)分赃m个金币。先由强盗1提出分配方案,所有的强盗投票,超过半数支持则方案通过,否则将强盗1杀死、由强盗2继续提方案,以此类推。假设所有的强盗都足够聪明,并且有以下三个目的,优先级递降,但互相之间不能达成协议:1、尽可能保住自己的性命;2、尽可能得到更多的金币;3、尽可能杀死更多的同伙。试用计算机求解:强盗1应该采取怎样的分配方案原创 2012-08-27 14:53:36 · 2434 阅读 · 0 评论 -
逆波兰表达式C语言实现
今天有师妹求助,要实现带有括号、加减乘除、阶乘的表达式计算一时冲动便给师妹写了一下,C语言代码如下,用了两个栈来实现逆波兰表达式求值://作者:卞昊穹//邮箱:bianhaoqiong(AT)163.com//2012.04.26//欢迎参考,引用请注明原作者#include #include //运算符栈的长度#define OPSTACK_LENGTH 5//操作原创 2012-04-27 00:24:08 · 9529 阅读 · 2 评论 -
C++ qsort 实现
自己写的C++ STL Algorithm中qsort的实现如下:void swap(void *a, void *b, int size){ unsigned char *bytesOfA = reinterpret_cast(a); unsigned char *bytesOfB = reinterpret_cast(b); char tmp = 0;原创 2011-08-05 11:27:35 · 2893 阅读 · 0 评论 -
败者树的Java实现
败者树在数据结构的课本上就有,它可以直接获得k个记录中的最小值/最大值,并且调整的时间复杂度为log(k),因此可以在多路归并排序中用来加速多个多并段中最小值/最大值的查找,从而提高归并的速度。败者树的Java代码如下,其中的Result是待排记录的抽象:/* * ResultSet.java 0.0.1 2013/04/04 * Copyright(C) 2013 db原创 2013-04-05 02:46:23 · 2666 阅读 · 0 评论 -
二维空间中的声线反射模拟
感觉这个挺有意思的就做了一下,虽然是和虚拟现实沾边的东西,但说不定以后在数据挖掘上也能用来给数据在不同属性上分类什么的。做了个最简单的:模拟声音在理想二维空间中的反射,而且假设二维空间是封闭的矩形区域,其中可能有若干的垂直或者水平的墙,将空间分割为若干的子空间,空间中有一个声源和一个接收点。声源向四周均匀发射n条声线,反射深度为m(经过m次反射,强度会衰减到0),空间中公有y条互不交叉的墙原创 2012-05-21 16:05:49 · 1665 阅读 · 0 评论