组合 本程序的思路是开一个数组,其下标表示1到n个数,数组元素的值为1表示其代表的数被选中,为0则没选中。 首先初始化,将数组前n个元素置1,表示第一个组合为前n个数。 然后从左到右扫描数组元素值的“10”组合,找到第一个“10”组合后将其变为“01”组合,同时将其左边的所有“1”全部移动到数组的最左端。 当第一个“1”移动到数组的n-m的位置,即n个“1”全部移动到最右端时,就得到了最后一个组合。 例 2020-01-03 算法
异常处理 产生过程当程序运行时,可能会产生异常,当cpu检测到这些时间发生时,就会通过异常表跳转到异常处理程序,然后进行处理。 异常表示常驻于内存中的,每个异常都有一个异常号,事件发送的是异常号,之后根据异常号找到异常表中的对应项再跳转过去。异常表的首地址存放在一个特殊的寄存器中。 当一场处理结束之后,可能会跳转到下一条语句,可能跳转到当前语句,也可能终止程序。 要注意,这里讲的异常是系统提供的异常,要把用 2020-05-12 计算机系统基础
java 内部类 内部类就是在类的内部又定义一个类。 实例内部类实例内部类就是没有static修饰的内部类。他有以下几点需要注意 在创建内部类的实例时,外部类必须已经创立。例如: Outer.InnerTool tool = new Outer().newInnerTool();这个语句相当于 Outer outer = new Outer(); Outer.InnerTool Tool = outer.new 2020-04-28 java
java 泛型 发展过程由父类转给子类时允许的,但是会抛出ClassCastException。这种异常是运行时异常,编译期不会检查,这就加大了检查的难度。为了解决这个问题,从jdk5开始引入了泛型。泛型可以把ClassCastException转换成编译时类型不兼容错误。 泛型符号是<>,里面可以使任意一种类(不能是int等基础类型,可以是Integer). 例如: Set<Object> 2020-05-21 java
埃氏筛 在筛质数时,我们会发现,筛去2后,2的倍数4、6、8等一定不是素数;筛去3后,3的倍数6、9、12等一定不是倍数。简单模拟这个过程如下1234567891011const int MAXN = 1000000; void Prime() { for (int i=0; i<MAXN; i++) prime[i]=1; //先把每个数都定义为质数 prime[0 2020-01-04 算法
线性筛 埃氏筛中有重复,例如6,2与3都筛了一次,效率低线性筛定理,(口语不准确)一个数i乘以小于等于它的最小素因数的素数所得到的合数之间没有重复12345678910111213141516171819202122232425262728 #define N 10000int flag[N+1],prime[N+1],pnum;/*flag[n] 表示n是否是素数,1是素数,0不是prime 中 2020-01-04 算法
java 数组 基础声明可以这样声明: 12int[] scores;String[] names; 也可以这样声明12int scores[];String names[];二维更为古怪123int [][]x;int []x[];int x[][]; 这里注意一点,声明时不能往括号中加东西,会报错。例如:int x[1];//报错 java中推荐吧括号放到前面,可能int[]也成了一个对象? 创建数组对象创建 2020-05-14 java
查找 静态查找顺序查找就是一个个找,过程不必多少。 如果查找每个元素概率相等,那么查找第n个元素只需要一次,第n-1需要两次…。所以平均查找次数是 1+2+…+n / n = (n+1)/2 折半查找其实就是二分查找,代码 分块查找分块查找就是每个找出每个块中最大的元素然后单独建一个表,之后就可以先查找这个表然后根据表来查找。大致意思就是这样,具体代码 动态查找二叉排序树(查找树)二叉查找树特点是左儿子 2020-05-10 数据结构
dw dw即define word,定义字型数据。例如,dw 0123h,0456h,0789h.这样就定义了几个字型数据,那这些数据都在哪里呢,他们的段地址都是从cs开始的,而偏移地址从0开始,也就是说,0123h的偏移地址是0,0456h的偏移地址是2,0789h的偏移地址是6。 但是这样会带来一个问题,因为前十六个字节是dw所定义的字型数据,所以这样可能使程序的入口出现问题,所以可以1234567 2020-01-23 汇编
快速排序 步骤:1.先从数列中取出一个数作为基准数。 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。 3.再对左右区间重复第二步,直到各区间只有一个数。 例 6 1 2 7 9 3 4 5 10 8 进行排序 1 以6为基准数,先从右边找比6小的数,我们用一个变量j一步步向左移动,好在移动三次后我 们找到了5,j为7。现在再让另一个变量i向右移动去找比6大的数,当i为3时找到 2020-01-05 算法 #快排