方法一:增量构造法 理解递归必须得理解函数到底是做什么的。 方法二:位向量法 枚举每一位选或者不选,复杂度比方法一略高但更好理解,因为与输出全排列思路差不多,满n位就输出。 缺点是输出不是按照字典序。 方法三:二进制法 稍加思考就会发现,方法二其实与二进制是对应的。 这个方法优点就是代码简单。 注意 ...
分类:
编程语言 时间:
2016-07-30 14:53:34
阅读次数:
519
EnumSet
专门为枚举类设计的集合类,所有元素必须是枚举类型
EnumSet的集合元素是有序的,内部以位向量的形成存储,因此占用内存小,效率高
不允许加入null元素
源码
package java.util;import sun.misc.SharedSecrets;
public abstract class EnumSet<E extends Enum> extends Ab...
分类:
编程语言 时间:
2016-07-17 00:32:36
阅读次数:
269
示例 设想有两个不同类的API。第一个是位向量:有序的位集合var bits=new BitVector(); bits.enable(4); bits.enable([1,3,8,17]); bits.bitAt(4);//1 bits.bitAt(8);//1 bits.bitAt(9);//0... ...
分类:
编程语言 时间:
2016-07-06 20:13:43
阅读次数:
204
在图形学中,计算光照模型时,经常需要求取反射向量,一般的shader函数库都提供计算反射向量的方法,下面介绍一下如何手动计算反射向量。
给定入射光线向量I和平面法向量N,求反射向量R,如下图。为了方便计算,这里假定I和N都是单位向量(模为1,编程时可先将I和N单位化)...
分类:
其他好文 时间:
2016-07-06 15:18:24
阅读次数:
175
一、启动模式,决定向量表的位置当CPU上电后,首先代码区(Flash)应该从地址为0x00000000开始,而数据区(SRAM)应该从0x20000000开始,Cortex-M3CPU总是通过代码区获得复位向量。STM32F10XXX微处理器中运用了特殊的机制使得STM32不仅可以通过Flash(主闪存和系统闪存)启动,..
分类:
其他好文 时间:
2016-06-10 15:07:28
阅读次数:
623
一、启动模式,决定向量表的位置当CPU上电后,首先代码区(Flash)应该从地址为0x00000000开始,而数据区(SRAM)应该从0x20000000开始,Cortex-M3CPU总是通过代码区获得复位向量。STM32F10XXX微处理器中运用了特殊的机制使得STM32不仅可以通过Flash(主闪存和系统闪存)启动,..
分类:
其他好文 时间:
2016-06-10 15:05:11
阅读次数:
1163
EnumSet类也是有顺序的,EnumSet按照枚举值在Enum类内定义的顺序决定集合元素的顺序 EnumSet在内部已位向量的形式存储,这种存储方式非常紧凑、搞笑,因此EnumSet占用内存很小,而且运行效率很好。 EnumSet集合不允许加入null元素 EnumSet常用的方法: 1)、Enu ...
分类:
编程语言 时间:
2016-05-29 13:36:00
阅读次数:
214
二进制既是将不同长度的“位”(一个1或0)组合在一起再加上不同的解释以赋予含义。同样的机器代码[ 1000 1010] 在不同的编码模式下的意义是不同的。
这里分析一下无符号编码,既是C语言中的unsigned int, 与补码编码,C语言中的 int。通过五个方面进行学习:1,将位模式转换为两种编码格式下的值的过程的函数缩写,2,位向量在两种编码格式下的取值范围,3,位向量在两种编码格式下的扩展方法,4,理解溢出这...
分类:
其他好文 时间:
2016-05-27 12:09:28
阅读次数:
249
习题 1.1 如果不缺内存,如何使用一个具有库的语言来实现一种排序算法? 因为C++有sort,JAVA也有,这里以C++为例给出,记住如果用set集合来排序时,是不可以有元素重复的 代码: 1.2 如何使用位逻辑运算来实现位向量? 可能会出现以下问题:(这部分和第3题有重复,读者可直接看第4题) ...
分类:
其他好文 时间:
2016-05-18 23:44:21
阅读次数:
308
问题描述
输入:一个最多包含n个正整数的文件,每个数都小于n,其中n=107。如果在输入文件中有任何正数重复出现就是致命错误。没有其他数据与该正数相关联。
输出:按升序排列的输入正数的列表。
约束:最多有1MB的内存空间可用,有充足的磁盘存储空间可用。运行时间最多几分钟,运行时间为10秒就不需要进一步优化。
程序设计与实现概要:应用位图或位向量表示集合。可用一个10位长的字符...
分类:
编程语言 时间:
2016-05-18 19:29:41
阅读次数:
195