• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
ying_seven
博客园 | 首页 | 新随笔 | 新文章 | 联系 | 订阅 订阅 | 管理

随笔分类 -  算法

 
编程珠玑读书笔记——出现次数为多次的位图法实现
摘要:是书上的一道问题,文件中保护至多10000000个记录,每条记录都是一个7位整数.你只有1mb的主存(我的编码完成所需内存会略大于1mb,可以用多通道解决,这里暂不实现)每个整数至多只能出现10次.只是把位图法的存储空间变为4bit即用4bit来表示该数的出现次数 为0则文件中无此数以下是我自己用c实现的 编译器是vc6.0#define BITSPERWORD 32#define SHIFT 3#define MASK 0x07#define N 10000000int a[4*N/BITSPERWORD];/***************************************** 阅读全文
posted @ 2011-03-28 18:47 ying_seven 阅读(433) 评论(0) 推荐(0)
编程珠玑读书笔记——串的转置算法
摘要:将一个具有n个元素的一维向量向左旋转i个位置.假若n = 8, i = 3, 那么向量abcdefgh 旋转后为defghabc.(文中代码部分,均为我用c语言实习.编译器为vc6.若出现错误或者有更好的方法请,请留言交流.谢谢~)1、将待旋转的向量看作是ab两段,假设a比b短,将b分割为b1和b2使b2长度与a相等.交换a、b2,这样ab1b2变为b2b1a这样a已经在自己最终的位置上了.下面的工作就变成了旋转b2b1./********************************** Fction:将字符串按条件转置 char * p:字符串首地址 int t:所要选择部分的长度 in 阅读全文
posted @ 2011-03-28 01:51 ying_seven 阅读(475) 评论(0) 推荐(0)
位图算法
摘要:这种表示法一般符合3个属性:1、输入范围相对要小2、不包含重复数据3、没有数据与单个整数(主键)以外的每一记录相关联Jon Bentley给出的实现#define BITSPERWORD 32#define SHIFT 5#define MASK 0x1f#defien N 10000000//如果要连续的静态内存空间 还是数组比较好 我用的时候用的是malloc//感觉没有数组好 而且 malloc还容易忘free int a[1+N/BITSPERWORD];//我自己写的时候 用的是 i/32 和 i%32 明显没有大师用的好//对于地址相关型数据的操作 还是位操作 显得灵便 效率更高v 阅读全文
posted @ 2011-03-24 23:06 ying_seven 阅读(348) 评论(0) 推荐(0)
 

公告


博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3