精华内容
下载资源
问答
  • 图的存储结构:1.二维数组邻接矩阵存储 2.数组模拟邻接表存储

    图的存储结构:1.二维数组邻接矩阵存储 2.数组模拟邻接表存储

    **

    1…二维数组邻接矩阵存储

    **

    #include<iostream>
    using namespace std;
    int i,j,k,e,n;
    double g[101][101];
    double w;
    int main()
    {
    	int i,j;
    	for(i=1;i<=n;i++)
    		for(j=1;j<=n;j++)
    			g[i][j]=0x7fffffff;
    			//初始化,对于不带权的图g[i ][j]=0表示没有边连通。这里用0x7fffffff代表无穷大 
    	cin>>e;
    	for(k=1;k<=e;k++)
    	{
    		cin>>i>>j>>w;  //读入两个顶点序号及权值 
    		g[i][j]=w;  //对于不带权的图g[i ][j]=1
    		g[j][i]=w; //无向图的对称性  如果是有向图就不需要这句 
    	}
    	 
    	 
    	 
    	 
    	 return 0;
    }
    

    注:
    1.初始化数组大可不必使用两重for循环。
    (1)如果是int 数组,采用memset(g,0x7f,sizeof(g))可初始化为一个很大的数(略小于0x7fffffff); 如果是很小的数可用0xaf;
    (2)如果是double数组,采用memset(g,127,sizeof(g))可初始为一个很大的数1.38*10^306 ;

    2.数组模拟邻接表存储**

    #include<iostream>
    using namespace std;
    const int maxn=1001,maxm=100001;
    struct Edge
    {
    	int next;  //下一条边的编号 
    	int to;  //这条边到达的点 
    	int dis;//这条边的长度 
    	
     } edge[maxm];
    int head[maxn],num_edge,n,m,u,v,d;
    void add_edge(int from,int to,int dis)
    //加一条从from到to距离为dis的单向边 
    {
    	edge[++num_edge].next=head[from];
    	edge[num_edge].to;
    	edge[num_edge].dis=dis;
    	head[from]=num_edge;
    }
    int main()
    {
    	num_edge=0;
    	scanf("%d%d",&n,&m); //读入点数和边数 
    	for(int i=1;i<=m;i++)
    	{
    		scanf("%d%d%d",&u,&v,&d); //u和v之间有一条长度为d的边 
    		add_edge(u,v,d);
    	}
    	for(int i=head[1];i!=0;i=edge[i].next) //遍历从点1开始的所有边 
    	{
    		
    	}
    	
    	return 0;
    }
    
    展开全文
  • #资源达人分享计划#
  • 数组,顾名思义,是数据的组合。它数组在应用上属于数据的容器,不仅仅是一种基础的数据类型,更是一种基础的数据结构。...1. 一维数组(1)Numpy一维数组在python中,用列表也可以表示数组,但是用N...

    c1b0937ef23abfe100f126e55eb62e42.png

    数组,顾名思义,是数据的组合。它数组在应用上属于数据的容器,不仅仅是一种基础的数据类型,更是一种基础的数据结构。你如果使用python编程,那么一定会非常频繁地跟数组打交道。

    Python中,Numpy(常用于数学计算)和Pandas(数据分析常用包,可方便地对表结构进行分析)这两个常用的数据包均可以用于表示数组。

    1. 一维数组

    (1)Numpy一维数组

    在python中,用列表也可以表示数组,但是用Numpy表示的一维数组具有统计功能(如平均值mean(),标准差std())和向量化运算功能,这是列表不具有的。

    在定义一维数组之前,我们需要先导入numpy包。用array定义一维数组,用dtype查看数据类型,数组的下标从零开始。

    #导入numpy包
    

    数组的访问有切片访问和循环访问两种,切片访问更常用,也更方便。

    #切片访问(常用)
    

    (2)pandas一维数组

    pandas一维数组可以用Series建立索引,用index来指定索引,这样,访问时就可以通过索引来访问数组。

    #导入pandas包
    

    iloc属性用于根据位置获取值,loc属性用于根据索引获取值

    stockS

    describe用于获取描述统计信息。

    98180ac2b5cb98a8f5d198a21a3fd7a5.png

    pandas一维数组也支持向量运算。在下图的向量运算中,结果出现了空值,这是因为运算中的某一个数据为空

    0de0cbf04479f2fd8c7616ec066b0c87.png

    在运算中,我们经常不希望结果中出现空值,要想得到没有空值的结果,我们需要对数据进行处理。一种方式是将缺失值删除。pandas中用dropna删除缺失数据。第二种方法则是将缺失值进行填充,填充时,要根据实际情况,确定可以直接用零数据填充,还是需要建立模型,计算出填充值。pandas中用add进行值的填充,fill_value为填充值(下图填充值为0)

    a0bf0316cf3b74df5be899fb7128aaba.png

    2. 二维数组

    (1)NumPy二维数组

    NumPy中,二维数组与一维数组的定义、查询及访问均非常类似。数组下标均从零开始,行号与列号用逗号分隔,行号在前,列号在后。

    #Numpy二维数据结构
    
    

    在计算平均值、最大最小值等统计值时,我们通常希望对每一行或者每一列求其统计值,而不是对整个数组求其统计值,这时就需要使用数轴参数axis。axis = 0表示按列计算,axis = 1表示按行计算。

    #按轴计算每一行的平均值
    

    接下来的内容,由于程序输出结果复杂,作者直接将在jupyter的运行截图放在文中,以便读者更直观地了解二维数据的相关操作。

    (2)pandas二维数组

    Numpy二维数组每一列的数据类型都是一样的,因此它不适合保存excel表格这样每一列的数据类型都不一样的数据。此时,pandas二维数组就可以发挥它的巨大作用了。

    pandas用数据框DataFrame定义二维数组,他有两个优点,一个是它每一列的数据类型都可以不一样,第二个是它每一行每一列都有一个索引,可以方便地通过索引访问数据。

    在用pandas数据框DataFrame定义带索引的二维数组时,首先要定义一个字典,映射列名和对应列的值;其次,定义数据框,将参数传入字典。

    3e6a031fa3060c459c5168a3b54eee98.png

    如果希望传入数组中的数据跟我们定义的顺序是一致的,需要定义一个有序字典。

    bd3d9657ef648830239576b44644f0dd.png

    pandas二维数组的数据访问与一维数组类似。

    iloc属性用于根据位置查询值

    3199dd75afdbb5c21fc6b781e40ff3bc.png

    loc属性用于根据索引查询值

    84d155b27352268df643779d8a412b17.png

    有时候,我们需要根据条件查询出数组中符合条件的数据,这可以通过建立条件判断筛选和应用查询条件来实现。

    建立条件判断筛选

    ba9b243b3b584036c0e8ae932ebb2b01.png

    应用筛选条件

    70c739e497daa8b53989880385804be5.png

    3. 从Excel中导入数据

    用python读取excel中的数据也非常方便。pandas.ExcelFile(在计算机的存储路径名)可用于读取Excel数据,head()可用于输出前五行数据,shape可用于查看行数和列数。

    4fdf2942ce2fd586ad16aab533d37728.png

    4. 结束语

    前路漫漫,雁过无痕,心之所向,热血仍存。

    在学习python的路上,你我一起努力。

    展开全文
  • 260二维数组中的元素查重 描述 设二维数组a[1…m, 1…n] 含有m*n 个整数。写一个算法判断a中所有元素是否互不相同。 输入 多组数据,每组数据有m+1行,第一行为二维数组的行数m和列数n,之后m行为输入的二维数组...

    欢迎登录北京林业大学OJ系统
    http://www.bjfuacm.com

    260二维数组中的元素查重

    描述
    设二维数组a[1…m, 1…n] 含有m*n 个整数。写一个算法判断a中所有元素是否互不相同。
    输入
    多组数据,每组数据有m+1行,第一行为二维数组的行数m和列数n,之后m行为输入的二维数组。当n=0且m=0时输入结束。
    输出
    对于每组数据分别输出一行,若二维数组中存在相等元素则输出“YES”,否则输出“NO”。
    输入样例 1
    4 3
    1 2 3
    4 5 6
    7 8 9
    10 11 12
    3 4
    1 2 3 4
    5 6 7 8
    1 9 10 11
    0 0
    输出样例 1
    NO
    YES

    #include<iostream>
    using namespace std;
    int Check(int a[20][20],int m,int n)
    {
        int i,j,p,k;
        for(i=0;i<m;i++)
            for(j=0;j<n-1;j++)		//判断a[i][j]是否重复
            {
                for(p=j+1;p<n;p++)		//用p来保存列,先比较同一行的数据
                    if(a[i][j]==a[i][p])
                    {
                        cout<<"YES"<<endl;
                        return 1;
                    }
                  for(k=i+1;k<m;k++)	//用k来保存行,开始比较下一行的数据
                    for(p=0;p<n;p++)	//用p来保存列,比较第k+1行的数据
                         if(a[i][j]==a[k][p])
                        {
                              cout<<"YES"<<endl;
                              return 1;
                        }
            }
          cout<<"NO"<<endl;
        return 0;
    } 
    int main()
    {
        int m,n;
        while(cin>>m>>n&&m!=0&&n!=0)
        {
            int a[20][20],i,j;
            for(i=0;i<m;i++)
                for(j=0;j<n;j++)
                    cin>>a[i][j];		//输入二维数组
            Check(a,m,n);        		//查重判断
        }
        return 0;
    }
    展开全文
  • 在MyBatis中,我们通常是使用其核心功能--映射器(resultMap + handler),将数据库模型与Java Bean进行映射,方便对数据库进行增删改查。 近期的工作中遇到一个需求是查询非结构化的数据,即运行时并不知道查询的...

    在MyBatis中,我们通常是使用其核心功能--映射器(resultMap + handler),将数据库模型与Java Bean进行映射,方便对数据库进行增删改查。

    近期的工作中遇到一个需求是查询非结构化的数据,即运行时并不知道查询的数据结构。在国内外的网站上都进行了的搜索,并没有找到令人满意的解决。

     

    问题可以理解为:需要一种MyBatis的配置,能执行任意SQL,因为结构未知,因此返回的的数据结构为List<Object[]> 或者List<String[]>。列表中的一项对应查询结果的一行。

    考虑到MyBatis可以通过指定resultType为Java中的包装类型来实现一些自定义的数据结构,故尝试在resultType中使用LinkedHashMap(保证行内数据的顺序)。

     

    下面是示例代码:

    xxxMapper.xml

      <select id="runSQL" parameterType="com.xxx.SqlEntity" resultType="java.util.LinkedHashMap">
        ${sql}
      </select>

     

    xxxDao.java

    List<Map<String, Object>> runSQL(SqlEntity sqlEntity);

     

    在业务层稍作处理,将List<Map<String, Object>>转化为List<Object[]>之后,就可以直接使用,或者你也可以转化为你需要的结构了。

    private List<Object[]> convert(List<Map<String, Object>> list) {
        List<Object[]> ans = new ArrayList<>();
        for (Map<String, Object> map: list) {
            ans.add(new ArrayList<>(map.values()).toArray());
        }
        return ans;
    }

     

    上面的xml配置里有用到一个SqlRunner,原因是需要动态配置执行的SQL语句,这里使用了MyBatis的parameterType + ${...}这个字符串替换的方法。

    ${xxx}与#{xxx}有一点区别,

    #{xxx}会将参数替换为`?`,然后调用jdbc的PreparedStatement.setXXX()方法替换变量

    ${xxx}直接替换字符串,有sql注入的风险,此处就不多说了。。

    SQL包装类SqlRunner.java

    @Data
    public class SqlRunner {
        private String sql;
    }

     

    写在最后:MyBatis中,resultType和resultMap不能同时使用!!

    看到这里的同学,希望能解决你们的问题,共勉。

    展开全文
  • 二维数组的初始化与遍历

    千次阅读 2018-05-28 16:44:28
    对比一下一维数组,一维数组中的元素是基本类型的数值或者是引用,那么二维数组的元素即为一维数组,也就是数组中套数组。 这里主要分为两部分来说,1.基本类型的二维数组;2.引用类型的二维数组;其中,在内部会...
  • 数据结构之——数组

    2020-07-31 12:06:43
    下面就让我们以二维数组为例,说明多维数组的逻辑结构、遍历和存储结构。 1.二维数组的逻辑结构 二维数组是一维数组的扩展,二维数组是“元素为一维数组”的一维数组。一个m行n列的二维数组,既可以看成由m个一维...
  • 彩色图像和三维数组结构分析

    千次阅读 2019-07-07 17:53:43
    图像处理没打好基础,很容易犯这样一个误区:灰度图像是二维的,彩色图像是三维的,然后以为彩色图像在储存时是和三维数组的储存方式一样的。然后在对图像进行元素处理时老是犯错误或者慢人一拍。下面直接上程序了。...
  • 二维数组指针和函数参数

    千次阅读 2015-01-09 08:51:41
    前几天看到一段代码,是在函数参数中传递二维数组的例子,弄得很糊涂,最近看了一下书,总结一下。 1.指针和二维数组 我们这里先定义一个二维数组:int zippo[4][2];/*整数数组的数组*/ (1)zippo为二维...
  • 单元格:标准数独中有81个; 行:横向9个单元格的集合; 列:纵向9个单元格的集合; 宫:粗黑线划分的区域,标准数独中为3×3的9个单元格的集合; 可选列表:每个空单元格中可以填入的数字。
  • 先上效果图: 说明: 横 和 纵 都是遍历出来的...一、问题是这样的:后台传了xArr = [x1, x2,...,xn]和yArr = [y1, y2, ..yn]两个数组,前端要渲染出表格并且可以填写每个单元格的值,然后按照一定数据结构保存...
  • 1.一维数组 在计算机科学中,数组可以被定义为是一组被保存在连续存储空间中,并且具有相同类型的数据元素集合。而数组中的每一个元素都可以通过自身的索引(Index)来进行访问。 以 Java 语言中的一个例子来说明...
  • 多维矩阵/数组变成一维数组

    千次阅读 2019-01-20 21:59:07
    上面我生成了一个22的2维数组,我想将他们变成1维数组,使用reshape(-1),(括号有几个数表示几维,如reshape(1,1,1)表示三维),最后reshape是不改变原来的值的。这里-1表示不限定行数。注意reshape(-1,1)是二维,表示...
  • 二维数组和二维指针 作函数参数

    千次阅读 2013-06-30 23:35:00
    二维数组指针和函数参数 首先,数组名和指针作函数的区别: 数组名是常量,不能变,不能作为左值,指针可以作为左值 前几天看到一段代码,是在函数参数中传递二维数组的例子,弄得很糊涂,最近看了一下...
  • 6.18 当我向一个接受指针的指针的函数传入二维数组的时候,编译器报错了。 6.19 我怎样编写接受编译时宽度未知的二维数组的函数? 6.20 我怎样在函数参数传递时混用静态和动态多维数组? 数组的大小 6.21 当数组...
  • 5.1 序列化和反序列化及二维图形的基本框架 5.1.1 C#序列化和反序列化 5.1.2 二维图形的基本框架 5.2 二维图形 5.2.1 简单实例 5.2.2 图例 5.2.3 符号 5.2.4 对数比例 5.2.5 图形的修饰 5.3 阶梯状图 5.4 多Y轴图 ...
  • 数组为何从0开始计数 这几年学了VB、C、C++、C#、JAVA等编程语言,发现数组都是从零开始计数,从1开始不应该是 人类的惯性思维吗?直到今天接触了数据结构所给出答案才知道。 数组的概念: 线性表 连续的内存空间...
  • 格式:类型说明符 数组名 [常量表达式1][常量表达式2] 注意:位字符数组可以修改值,因为存在内存栈中。
  • 关于Java中多维数组的内存结构分析

    千次阅读 2015-01-12 16:32:30
    本文主要针对JVM中关于一维数组和二维数组的内存模型分析、验证、讨论! 【仅供参考】 。 1.概念模型 1)一维数组 int arr[] = new int[3]; 2)二维数组 int[ ][ ] arr = new int[3][ ]; arr[0] ...
  • 线性回归拟合二维数据

    千次阅读 2018-10-17 09:01:11
    #前向结构 z=tf.multiply(x,w)+b #反向优化 cost=tf.reduce_mean(tf.square(y-z)) #tf.square()对括号中的每一个元素求平方 learning_rate=0.01 optimizer=tf.train.GradientDescentOptimizer(learning_rate)....
  • 动态规划算法的基本要素[^2]5.1 最优子结构5.2 重叠子问题6.一些经典的动态规划问题 1.序 近期笔者会写一些博客,与大家共同讨论一些经典的算法思想。这篇文章主要介绍动态规划算法的基本思想、使用动态规划算法...
  • 树状数组是利用分的思想使得查询和修改的复杂度都为log(n)的数据结构,主要用于查询数组前缀和、区间和并且经常更改数据。
  • 测验1:Python基本语法元素 知识点概要: 普遍认为Python语言诞生于1991年 Python语言中的缩进在程序中长度统一且强制使用,只要统一即可,不一定是4个空格(尽管这是惯例) IPO模型指:Input Process Output ...
  • LSTM进阶:使用LSTM进行多维多步的时间序列预测

    万次阅读 多人点赞 2019-05-17 20:54:51
    此时的trainX的shape为 (3,3,2) trainY为(3,4) 我们只要记住trainY是如何从三维转化成二维的,再将预测值(二维)按照顺序转化回去即可。 进行训练 转化函数 def create_dataset ( data , n_predictions , n...
  • 前端面试题

    万次阅读 多人点赞 2019-08-08 11:49:01
    把两个数组合并,并删除第个元素。 61 怎样添加、移除、移动、复制、创建和查找节点(原生JS,实在基础,没细写每一步) 61 有这样一个URL: http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e,请写一段JS...
  • 例如,一架飞机由机翼、机尾、机身、发动机和其他部分组成,每一部分又可描述成第级组合体,如此等等,在层次结构中逐层往下描述。因此,该飞机可用那些部件及附属于每个部件的“建模”变换来描述,这些变换指出...
  • TensorFlow入门

    千次阅读 多人点赞 2019-04-23 10:09:29
    TENSORFLOW从入门到精通之——TENSORFLOW基本操作 TensorFlow升级到1.0版本的问题 Tensorflow save&restore遇到问题及解决应对 NotFoundError: Key Variable_10 not found in checkpoint TensorFlow的变量管理.....
  • 0-1背包 2012年4月30日Yx.Ac发表评论阅读评论 文章作者:Yx.Ac 文章来源:勇幸|Thinking (http://www.ahathinking.com) 转载请注明,谢谢合作。 --- ...本节回顾0-1背包的基本
  • 详解树状数组三种模型

    千次阅读 2015-06-22 22:45:32
    首先说明下:最后的最大值...树状数组与线段树在思想上很类似的一种数据结构,它比线段树更简洁,但它的适用范围也小了些。 提供一篇博文,详解树状数组的:http://www.hawstein.com/posts/binary-indexed-trees.html
  • 测试开发笔记

    万次阅读 多人点赞 2019-11-14 17:11:58
    章 测试过程 8 1.测试模型 8 H模型: 8 V模型 9 2.内部测试 10 3外部测试: 10 验收测试:(在系统测试之后) 11 回归测试: 11 4.测试过程(干什么,怎么干) 12 5.各阶段输入、输出标准以及入口、出口准则:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,171
精华内容 17,268
关键字:

关系模型的基本结构是二维数组