当前位置: 首页 > news >正文

模板王网站官网游戏推广员是做什么的

模板王网站官网,游戏推广员是做什么的,手机制作软件下载,自己开个公司要多少钱3.1 稀疏 sparsearray 数组 3.1.1先看一个实际的需求 编写的五子棋程序中,有存盘退出和续上盘的功能。 分析问题: 因为该二维数组的很多值是默认值 0.因此记录了很多没有意义的数据.->稀疏数组 3.1.2基本介绍 当一个数组中大部分元素为 0,或者为同…

3.1 稀疏 sparsearray 数组

3.1.1先看一个实际的需求

编写的五子棋程序中,有存盘退出续上盘的功能。

在这里插入图片描述

分析问题:
因为该二维数组的很多值是默认值 0.因此记录了很多没有意义的数据.->稀疏数组

3.1.2基本介绍

当一个数组中大部分元素为 0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组.

稀疏数组的处理方法是.

  1. 记录数组一共有几行几列,有多少个不同的值
  2. 把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模

稀疏数组举例说明
在这里插入图片描述

3.1.3应用实例

  1. 使用稀疏数组,来保留类似前面的二维数组(棋盘、地图等等)
  2. 把稀疏数组存盘,并且可以从新恢复原来的二维数组数
  3. 整体思路分析
    在这里插入图片描述
  4. 代码

/*** 稀疏数组*/
public class SparseArray {/*** 二维数组 转 稀疏数组的思路* 1. 遍历  原始的二维数组,得到有效数据的个数 sum* 2. 根据sum 就可以创建 稀疏数组 sparseArr   int[sum + 1] [3]* 3. 将二维数组的有效数据数据存入到 稀疏数组* <p>* 稀疏数组转原始的二维数组的思路* <p>* 1. 先读取稀疏数组的第一行,根据第一行的数据,创建原始的二维数组,比如上面的  chessArr2 = int [11][11]* 2. 在读取稀疏数组后几行的数据,并赋给 原始的二维数组 即可.*//*** 有效数据的个数*/static int sum = 0;public static void main(String[] args) {//创建一个原始的二维数组 11*11int chessArrSource[][] = new int[11][11];//稀疏数组int sparseArr[][] = null;//转换后的 二维数组int chessArrConvert[][] = null;//1.默认棋盘defaultChessBoard(chessArrSource);//2.二维数组 转 稀疏数组sparseArr = toSparseArray(chessArrSource, sparseArr);//3.稀疏数组 转 二维数组toDoubleDimensionalArray(sparseArr, chessArrConvert);}/*** 1.默认棋盘** @param chessArrSource*/public static void defaultChessBoard(int chessArrSource[][]) {//0:没有棋子,1:黑棋子,2:蓝棋子chessArrSource[1][2] = 1;chessArrSource[2][3] = 2;//输出原始的二维数组System.out.println("原始的二维数组:");/*** 第一维的数组长度是:intArray.length;* 第二维的数组长度是:intArray[index].length;*  注: index即索引(下标)的意思。*/for (int[] row : chessArrSource) {for (int data : row) {System.out.printf("%d\t", data);}System.out.println();}}/*** 2.二维数组 转 稀疏数组*/public static int[][] toSparseArray(int chessArrSource[][], int sparseArr[][]) {//2.二维数组 转 稀疏数组的思路//2.1. 遍历  原始的二维数组,得到有效数据的个数 sumfor (int[] row : chessArrSource) {for (int data : row) {if (data != 0) {sum++;}}}//2.2. 根据sum 就可以创建 稀疏数组 sparseArr   int[sum + 1] [3]sparseArr = new int[sum + 1][3];sparseArr[0][0] = chessArrSource.length;//行数sparseArr[0][1] = chessArrSource.length;//列数sparseArr[0][2] = sum;//有效数据个数//2.3. 将二维数组的有效数据数据存入到 稀疏数组int count = 0;//count用于记录是第几个非0数据for (int i = 1; i < chessArrSource.length; i++) {for (int j = 1; j < chessArrSource.length; j++) {if (chessArrSource[i][j] != 0) {count++;sparseArr[count][0] = i;sparseArr[count][1] = j;sparseArr[count][2] = chessArrSource[i][j];}}}//输出稀疏数组的形式System.out.println();System.out.println("稀疏数组:");for (int i = 0; i < sparseArr.length; i++) {System.out.printf("%d\t%d\t%d\t\n", sparseArr[i][0], sparseArr[i][1], sparseArr[i][2]);}return sparseArr;}/*** 3.稀疏数组 转 二维数组*/public static void toDoubleDimensionalArray(int sparseArr[][], int chessArrConvert[][]) {//稀疏数组转原始的二维数组的思路//1. 先读取稀疏数组的第一行,根据第一行的数据,创建原始的二维数组,比如上面的  chessArr2 = int [11][11]chessArrConvert = new int[sparseArr[0][0]][sparseArr[0][1]];//2. 在读取稀疏数组后几行的数据,并赋给 原始的二维数组 即可.for (int i = 1; i < sparseArr.length; i++) {chessArrConvert[sparseArr[i][0]][sparseArr[i][1]] = sparseArr[i][2];}//输出转换后的二维数组System.out.println();System.out.println("转换后的二维数组:");for (int[] row : chessArrConvert) {for (int data : row) {System.out.printf("%d\t", data);}System.out.println();}}
}
原始的二维数组:
0	0	0	0	0	0	0	0	0	0	0	
0	0	1	0	0	0	0	0	0	0	0	
0	0	0	2	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	稀疏数组:
11	11	2	
1	2	1	
2	3	2	转换后的二维数组:
0	0	0	0	0	0	0	0	0	0	0	
0	0	1	0	0	0	0	0	0	0	0	
0	0	0	2	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
0	0	0	0	0	0	0	0	0	0	0	
  1. 练习要求:
    在前面的基础上,将稀疏数组保存到磁盘上,比如 map.data
    恢复原来的数组时,读取map.data 进行恢复
http://www.zhongyajixie.com/news/4609.html

相关文章:

  • 投资公司网站建设怎么免费创建个人网站
  • 主流网站开发语言网站排名优化需要多久
  • web网站做二级标题是什么意思杭州优化公司哪家好
  • 中英文外贸网站建设外贸网站优化推广
  • 外贸招聘网站无经验能做sem专员
  • 哪个网站可做密丸域名注册信息怎么查
  • 网站 类库武汉seo首页优化技巧
  • 自己做的网站怎样赚钱工具大全
  • 网站建设制作设计优化企业微信scrm
  • 南宁网站建设代理竞价托管外包公司
  • 工商网站如何做企业增资seo和sem的联系
  • 景德镇网站制作模板网站好还是自助建站好
  • 百度百度一下seo优化靠谱吗
  • 网站建设哪家最专业北京seo培训
  • 怎样做网站和网站的友情链接seo自动排名软件
  • 开源网站有哪些找人帮忙注册app推广
  • wordpress 获取子页面如何刷seo关键词排名
  • 学校网站建设及使用档案nba最新排行
  • 专业的企业网站优化公司整站优化包年
  • 深圳做网站哪家公司最好seo综合查询工具下载
  • 中国最大的招商平台seo优化运营
  • 怎么做企业网站二维码微商店铺怎么开通
  • 无锡网站制作公司搜索引擎优化好做吗
  • 骏驰网站开发企业网站优化方案
  • 有哪些关于校园内网站建设的法律如何进入网站
  • 佛山网站哪家最专业四年级小新闻50字左右
  • 广州建站模板平台2345浏览器网址导航
  • 万网的网站怎么建设百度网页广告怎么做
  • 福州百度做网站多少钱常见的网站推广方法有哪些
  • 河南双师培训网站知名做网站的公司