《编程珠玑》中的问题用C实现——1

问题描述:一顺序文件中至多存在10000000个记录,每条记录都是一个7位整数,请对此文件中数据进行排序。

要求:1.程序可使用内存只有1MB。2.程序运行时间尽可能的短。

补充说明:每个记录都是一个7位正整数,并且没有其他的关联数据,每个整数至多只能出现一次。

 

 

实现纲要:

在现实中,位图和位向量很常见,我们可以使用一个20位的字符串来表示一个小型的小于20的非负整数集合。例如:我们可以将集合{1,2,3,5,8,13}存储在下面这个字符串中:01110100100001000000.集合中代表数字 的各个位设置为1,而其他的位全部都设为0.

      在现实问题中,每个整数的7个十进制数字表示了一个小于千万的数字。我们将使用一个具有一千万位的字符串表示该文件,在该字符串中,当且公当整数i在该文件中时,第i个位才打开(设为1)。

 

实现代码:

1.位操作头文件:bit.h

 

 

 

2.位操作c文件:bit.c

 

3.算法模拟代码:main.c

 

 

 

请大家批评,指导。本人正在学习,肯定有很多不足,希望大家指点一二。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值