首先,我们拿二维数组为例。二维数组称为矩阵。二维数组在概念上是二维的,但实际的硬件存储器却是连续编址的,也就是说存储器单元是按一维线性排列的。如果将二维数组作为参数传递给函数,那么在函数的参数声明中必须指明数组的列数,而数组的行数没有太大关系。因为函数调用时传递的是一个指针,它指向由行向量构成的.....
分类:
编程语言 时间:
2014-07-07 20:05:40
阅读次数:
214
★一维数组
一个整型数据为4个字节。4个字节就是32位,即可以表示2^32个数字
在程序中定义一个数组a[5] = {1,2,3,4,5};
那么a[0]的地址就是0x00000000,数组a的地址也是0x00000000。a+1则表示的地址是0x00000004,而不是0x00000001。因为1这个值,根据前面的指针a所指向的类型的长度来调整自己的长度。也就是说如果a是指...
分类:
编程语言 时间:
2014-07-03 17:17:44
阅读次数:
202
矩阵乘法的定义:在计算机中,一个矩阵实际上就是一个二维数组。一个m行n列的矩阵与一个n行p列的矩阵可以相乘,得到的结果是一个m行p列的矩阵,其中的第i行第j列位置上的数为第一个矩阵第i行上的n个数与第二个矩阵第j列上的n个数对应相乘后所得的n个乘积之和。比如,下面的算式表示一个2行2列的矩阵乘以2行...
分类:
编程语言 时间:
2014-07-02 22:44:59
阅读次数:
361
#include #define N 5void fun1(int a[N][N]){ int i,j; for (i=0;ij) { a[i][j]+=a[j][i]; a[j][i]=0; ...
分类:
其他好文 时间:
2014-07-02 18:34:32
阅读次数:
166
题目描述:
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
分析:
首先选择数组中右上角的数字。如果该数字等于要查找的数字,查找过程结束;如果该数字大于要查找的数字,剔除这个数字所在的列;如果该数字小于要查找的数字,剔除这个数字所在的行。依次类推,直到查找范围为空。...
分类:
其他好文 时间:
2014-07-01 06:36:23
阅读次数:
148
题目描述:
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
分析:
首先选择数组中右上角的数字。如果该数字等于要查找的数字,查找过程结束;如果该数字大于要查找的数字,剔除这个数字所在的列;如果该数字小于要查找的数字,剔除这个数字所在的行。依次类推,直到查找范围为空。...
分类:
其他好文 时间:
2014-06-30 20:18:42
阅读次数:
154
数组指针只是一个指针变量,似乎是C语言里专门用来指向二维数组的,它占有内存中一个指针的存储空间。指针数组是多个指针变量,以数组形式存在内存当中,占有多个指针的存储空间。
还需要说明的一点就是,同时用来指向二维数组时,其引用和用数组名引用都是一样的。...
分类:
其他好文 时间:
2014-06-27 23:56:34
阅读次数:
405
我的好友 12333 1233 123333 我的好友 12333 12...
分类:
编程语言 时间:
2014-06-27 16:59:42
阅读次数:
251
最简单的背包问题了,本题应该除了背包就一个考点了:不能开二维数组。我没开过二维,不过看数据是不可以的。太大了。
做法有两种改进省内存DP:
1 所谓的滚动数组
2 逆向填表
很久没做背包DP,突然觉得这种背包问题很简单了。
下面给出两种解法:
1 calBag()是滚动数组
2 calBag2()是逆向填表
#pragma once
#include
#inclu...
分类:
其他好文 时间:
2014-06-27 08:09:43
阅读次数:
165