文档章节

[Online zuozuo]阵列算法思考

_Zuozuo
 _Zuozuo
发布于 2017/02/04 21:55
字数 933
阅读 22
收藏 1

>通过什么实现

        ● Token(理解为某个对象本身的属性,他会根据自身的变化而自动更新自己的Token)

        ● 编码

        ● 集合

>过程

        需要实现什么:通过用户的输入获得一个矩形区域,在该矩形局域内以左上角为原点通过排布算法进行编排,得到一个初始的阵列。用户对该阵列进行操作和修正,得到二次设计阵列,我们需要获取二次设计阵列的排布数据以及自身和周围的状态。

        思考和执行:初始阵列其实就是一个二维数组,用户对阵列进行操作,就是对二维数组进行操作,然后可以得到一个不等长的变化的二维数组。我这么认为,然后开始构思如何实现。想了想,发现比较简单。但是想到了一个问题,虽然用数组可以实现,但是后面进行信息解读和进行其它计算的时候仍然需要使用数组,这可能会产生一个多重嵌套的数组操作过程,显然这样是不安全的。(在进行数组操作的时候很容易产生数组越界,即使使用一些代码来进行限制,也还是可能产生数组越界,数组一旦越界,就会让程序死掉。)而且阵列在用户操作完成后,阵列对象的状态无从记录,如果使用数组进行记录,每次用户进行操作和修正的时候,需要操作好几个数组,这将使得发生数组越界的风险继续增大。但是一下又没有想到其它方法。后面转换思路,发现是被阵列这个东西迷惑了,抛弃掉这个理解,其实阵列中的每一个东西都是对象,他只不过是按照一定的方式排序了而已,他与杂乱无章的对象并没有什么不同。这样理解后,那就比较简单了,按照现实中物理学的理解,每个对象他所存在的状态,与它本身共存,对象创建则状态创建,对象改变则状态改变,对象销毁则状态消失。那么,我们在一个一个的创建阵列对象的时候,同时创建状态,状态与对象是共存的,状态记录对象处于什么位置,存在一个怎样的环境中,对象的任何变动都将会改变状态。这样就解决了数组越界的问题。但是产生了一个新问题,如何记录状态?我想起来一句话,诸多的编程语言都对字符串有着非常安全和强大的能力,文件本身就是一个字符集和。所以我决定用字符串编码来记录状态。与之对应有一个解析器,用来解析状态编码。用户操作和修正对象,对象的状态通过用户操作触发状态变更。另外,使用Token标记对象后,Token是字符串,比起对象数组具有更小的资源占用。经过上面的处理后,我们需要对该阵列进行数据采集,如何采集呢,我们只需要采集每个对象的Token就可以了,采集完毕后,我们会得到一个Token集合,想要得到什么数据,我们通过前面的Token解析器进行解析就可以知道了。由此实现一个数据堆成山到用什么拿什么的过程。

© 著作权归作者所有

_Zuozuo

_Zuozuo

粉丝 5
博文 22
码字总数 14942
作品 0
杭州
后端工程师
私信 提问
raid阵列常见故障解决方案分享

Raid磁盘阵列是一种将多块物理硬盘整合成一个虚拟存储的技术,raid模块相当于一个存储管理中间层,上层接收并执行操作系统及文件系统的数据读写指令,下层管理数据在各个物理硬盘上的存储及读...

宋国建
2018/08/24
0
0
服务器raid常见故障分析 附数据恢复方案

Raid磁盘阵列是一种将多块物理硬盘整合成一个虚拟存储的技术,raid模块相当于一个存储管理中间层,上层接收并执行操作系统及文件系统的数据读写指令,下层管理数据在各个物理硬盘上的存储及读...

宋国建
2018/04/09
0
0
FPGA算法映射思考

将图像处理的算法转换为FPGA系统设计的过程称为算法映射,CPU并行算法的实现与FPGA并行算法的实现是有一定区别的。 1.算法系统结构 图像处理算法主要有两种设计结构:流水线结构和并行阵列结...

CoderDock
2018/01/07
0
0
Raid管理工具 - MegaCli

  前言   MegaCli是一款查看、管理当前机器raid卡所有信息的软件,包括raid卡的型号、raid的阵列类型、raid上各个磁盘状态等等。   这个软件支持多个平台,包括Linux(rpm包)、Solar...

linux运维菜
01/08
0
0
Linux 目录结构分析

/dev /dev目录:保存所有linux系统中使用的外部设备,和windows不同,该目录是访问外部设备的端口,而不是外部设备驱动程序。linux将所有设备认成是一个文件,设备文件分块设备文件(b)和字...

SibylY
2016/01/07
34
0

没有更多内容

加载失败,请刷新页面

加载更多

Command模式

https://www.cnblogs.com/devinzhang/archive/2012/01/06/2315235.html

南桥北木
41分钟前
0
0
由于PostgreSQL9.x二进制输出格式默认值改变导致的读取图片错误

今天从社区邮件看到一个这样的问题,感觉很有意思,在这分享给大家~具体如下: 问题现象: 作者有一个很老的Java应用,当时后端采用的PostgreSQL数据库版本为8.x,该系统除了正常的数据增删...

闻术苑
57分钟前
2
0
导入sql时出现Invalid default value for 'create_time'报错处理方法

当运行SQL会出现:[Err] 1067 - Invalid default value for 'create_time',是因为Mysql版本不同,如果版本不 < 5.6请去的话报错的处理方法如下: 方法 :alter table table_name modify cre......

writeademo
今天
1
0
对ssm(spring,springmvc,mybatis)的了解总结

ssm框架现在是java web开发的三个主流框架 ,其实严格来算只算是两个框架,因为springmvc属于spring框架 ,是spring的一个mvc子框架 那么我们下面就来了解一下三大框架把 一 .Spring spring...

咸鱼-李y
今天
2
0
聊聊Elasticsearch的FsProbe

序 本文主要研究一下Elasticsearch的FsProbe FsProbe elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/monitor/fs/FsProbe.java public class FsProbe { private static f......

go4it
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部