00:00
来看恢复,恢复的时候直接去遍历这个文件,思路遍历这个文件,遍历一行就往里面扔一行,遍历一行就扔一行。好,那么这个时候呢,因为我没有去存盘,所以说我这简单的就直接从系数入组,把它返返返回回来,就是我讲的,你们待会儿要做的时候呢,是从文件恢复,我先说一下这个我的一个思路啊。好,我先回到这里。我先回到这里啊,同学们。我先找到刚才我们写的这个代码,是在这一行。好,我们现在已经打印出这个系数数组了啊,然后下一步这是这个地方输出,其实就是为了让你们看一下。啊,然后呢,这个真实的时候,应该将将这个稀疏数组,将这个稀疏数组,稀疏数组存盘。存盘。在存盘机构。好,再一步恢复,我们来看看如何将啊,如何恢复成如何恢复,恢复原始的原始的这个数组。
01:07
这个简单最简单思路这样子的第一个就是打开。打开。打开这个存盘的文件,比如这个文件呢,我们是存在D盘的。第一盘我们叫做呃,Chess。Map,那么你就打开这个文件。打开这个文件啊,然后呢,通过这个文件的数据啊,便利这个它里面的数据啊,然后恢复恢复这个原始数据就可以了。原始数组就可以。好的,这是我的一个思路啊,那这里呢,因为我在做演示,我这里就直接用稀疏数组来恢复了啊这里。这里我暂时我使用,我使用稀疏数组。稀疏数组恢复。呃,一样的,其实用吸收数回复啊,还跟这个是一样的含义啊,就是说从这个代码上的大致相同,大家看一下怎么做呢,便利,首先你先第一步,你要先干什么呢?先创建一个,呃,原始数组先创建。
02:14
先创建一个原始的数组,这个数组呢,我们,呃,规模大小怎么去做啊。标注的写法应该是这样子的。先读出它的这这个数据和这个数据。然后根据这两个数据,就是根据你这存进去的这个11和这个十一来决定你原始数组的这个行和列,但是我刚才已经讲过了,构语言呢,他在创业的时候,它必须直接指定这个具体的数字,所以说呃,你们可以先做这个切片,那切片呢,也也也可以这样做啊,用切片来做,用切片来回复就行了,我这里就直接写死啊,我直接就写到这。那么我创建这个地方,你们可以这样做,那现在呢,我们这样子写一个,比如说chess。
03:05
MAP2。11。21,然后呢,这个地方我们就叫int,这是我准备恢复出来的原始数据。好。好,这个做好了以后,里面这个数组呢,现在是全零的,现在肯定是全零。跟我们这个原始数组呢,还有一定的差距,现在呢,我们要开始往里面放东西。好便利。遍历什么呢?遍历这个系数数组。Pass。Pass,这个A啊,你们呢,待会做的时候是遍历你们是啊,同学们是便利什么呢?遍历这个文件,遍历文件的每一行。每一行。就是把那个reader拿出来读一行,处理那个把它分割一下。便利文件的每一行,便利文件的每一行过后呢,啊,你们就类似这样一个操作啊。
04:05
我把这个系数数组的节点全部给取出来。啊,取出来的时候呢,呃,下标这个对我来说没有用,所以说我忽略它的每一个直接点,我是有用的。它的每一个直接点我是有用的,OK,那我range谁呢?就是这个系数数组。啊,在我这来看就是系数组,在你来看呢,就是文件啊。如果大家写不出来,我再把这个文件写出来啊,这个便利文件是一样的。你怎么读嘛,你循环的读不是一样的道理吗?啊,原先这个代码你你再回忆一下好,那取出一个节点,取出一个节点过后我干什么呢?我就直接往里面扔东西就可以了,这个恢复还是很简单的,直接找到它的行和列,就是这个节点里面的。行,它的行呢是。绕,它当然是这样子的,日就是绕列。
05:03
他的力。Value。Load点列列是什么呢?在于什么呢?等于它的值,它的值是什么呢?v.Y6。好,这个时候恢复。因为你现在可以肯定的是,你这个系数数组里面的肯定都是,呃,特别的数据不会是有零的,而它原先默认就是零,好其他的就不用动了,好这个做完了以后呢,我们来看看72是什么,我们看一下啊,我们输出一句话,现在看看。我们来看看。看看什么呢?就是ches my2目前是什么样子,是是不是恢复了。是不是恢复了?我们来遍历一下,遍历前面的代码很相似,所以说我不再重写了。数组的遍历我们刚才是有的,我不再重写。好,我把它拿过来给大家看一眼,只是呢,把这个换成二就可以了,好,我输出一句话。
06:06
我说出一句话啊,我说这个是,呃,恢复过后的原始数据。恢复。恢复后的原始数据。OK,好,我们来玩一把。看一下代码。看下有没有问题啊。好,这边有个问题,我们找到第呃79行,79行,他说我们这边有一个数组,约见79行。79行的数组越界是在这里啊,是在这里,那么我们看看这个地方是哪里出了问题呢?啊,哪里出了问题。好value value一个节点啊,Value一个节点,那么这边我们存的时候是啊非常的明白了。大家知道为什么出了一个问题吗?是因为我们原先的这个,我们这个数组里面,它记录了,它记录这个东西11110。
07:08
对这个其实对于我们来说没有什么用处,对这个呢,对我们来说是目前没什么用处,对不对,因为你这个幺幺这个这个东西,对对我们这个。目前来说,对我们这个这种情况来说没有用,你你得跳过这个幺幺,因为它是代表的你有几行几列的原始数据,这个将来的价值在什么地方呢?别人问到你啊,如果有面试官问到你说第一行的这个十一十一零是什么,这个十一十一零呢,是用来确定你你你将来这个二维数组开。多大的二维数组开多大的这个才有用,但是够浪呢,它是起始的,所以说呃,这对二维数组来说,这两个数据呢,我们把它跳过去就行了,怎么跳非常简单,第一个我们先把它跳走。就第一个我不要去往里面扔东西,对第一个要跳,怎么把它跳过去呢?我第一次进来的时候先跳过第一行。
08:05
那就通过这个下标就可以了,我们看它下标有没有,有什么特点没有啊。它这个下标就第一次啊,对,通过下标就可以了,非常好,那这个I呢,就发挥它重要的作用了,它这个I就有重要作用,那么就这样写if I不等于零,因为你第一次取完数是零嘛,它如果不等于零呢,哎,我就可以。去把它恢复到这个数组里面去,就不等于这句话的意思,我写一下叫跳过。跳过什么呢?诶,腿要跳。跳过第一行,第一行这个数据,第一行的这个记录的值,对,因为这个记录的值呢,没有用啊,对我来说现在暂时没有用,它是用来开二维数组的时候有用,那么我现在再来走一下,你会发现它就没问题了。好,同学们可以看到我。我中间这个这个过渡是很清晰的,这是原始的数组。
09:02
这个是稀疏的数组,最后恢复过后呢,它又变成了这个数组,大家可以看到啊,我这个呢,就是一个演示,当然了,我们这个具体的情况还要具体分析,就说如果同学们想去这样做,说老师我觉得这个地方我们用一个切片来做也可以,对吧,那你把它改成一个切片。改成一个切片,也可以去尝试做一做啊,就是我是我这里面呢,关键点不是讲它是不是切片的问题,我的关键点是在讲解一种什么呢,讲解这么一种思想。数据结构它其实是一种算法的一一个底层,它讲的是一种是一种思想,就是告诉大家以后你遇到这么一个问题,就是说遇到这种一种类似这样一种有大量的同重复数据的问题,怎么去解决这个思路。并不在于说,诶今天我讲了一个这个东西,诶大家会了,那换一个东西你就不会了,这个主要是一种思想,你就知道,诶别人问你吸书有什么用错啊,你告诉他七松乳是如此折般的,我这样讲其实已经很通俗了,大家可以看一下。
10:14
以前我们在这个课堂里面,我们应该我这个以前也学过这个啊,我看你们也有习数组,当时就讲的特别的很晦涩,就不知道他这个东西怎么去理解,我给大家看一下以前我们学的那个。那个课程里面应该也有习俗数组,我看看啊。行书宿主,你看果然是在这地方,他讲宿主的时候,当时我们讲讲宿主。讲讲这些东西,基本上就是念哈,不会说给你敲代码,你看这边就有一个,就有一个稀疏数组,看,这叫稀疏矩阵,它叫稀疏矩阵。好么,我看一下这个在哪里。呃,就是当时我们讲课就基本上就是这样子的,就就换那边走一走,老师一行代码也不敲。
11:03
啊。这个还不在这儿,应该是在这屁股后边啊,直接我拉到后面的。这边他也讲了个叙述矩阵。嗯,我看看在哪里。啊,你看他,他这个思想跟我们是一样的。对吧,在这讲了,讲了他这个习数矩阵啊,就是扩展开来,就是可能是有矩阵呢,就是它的维度更高一点,我们其实讲了个二维啊,将来它的维度高一点,比如说他的思想跟我们是一样的,只是当时呢,是用这个C加加写的,就当时也不知道在讲什么。就好像觉得就是这个稀疏水稀数运就是用来做加缩的,但具体怎么做完全不知道好这个呢,关于系数,系数数组的这个概念啊,我跟同学们布置的作业是这样子的啊。我这里呢偷了一个懒,我这里偷了一个什么懒呢,我偷了这么一个懒,就是我七叔数主没有存盘,这是第一个懒,第二个恢复的时候,我偷的呢,是直接从这个稀疏数组恢复,你们不能这么做,今天晚上的作业是今天晚上作业是啊呃,在老师这个代码基础上存盘,真的要存到文件里面去恢复,一定要从文件恢复啊,我把这个地方给大家整理一下好的,具体代码呢,老师就不啰嗦了。
12:20
我把这个代码呢,给大家复制一下,这个我就不啊一行行写了啊。好的,同学们。我把这个呢给大家放到这里,然后呢,我说一下对于这个系数数组的一个改进,就是留给你们一点念想的东西啊,对系数数组的改进,对老师老师的这个稀疏数组的一个改进要求,改进要求,那么我也给大家整理到这里,我我对大家的一个要求,对我对大家一个要求。啊,什么要求呢,就是呃将就是第一点啊在系数数组,呃将原始数组将这个形成的将形成的啊相将构建的吧,构建的这个稀疏数组。
13:08
吸收数组存盘,存盘这是第一个要求,第二个呢,在将这个恢复成原始数组的时候,要读盘去恢复再恢复。在恢复。在恢复原始,原始这个二维数组时,二维数组时要求要求从这个这个这个文件中文件啊,存盘的文件存盘,比如说这个存盘是Che。嵌实点啊迈步啊迈步点这个从这个文件里面回复啊,这是一个具体的要求啊,同学们要要去做。要从这个文件回复。从文件读取恢复。好的,那关于系数数组呢,老师就先给大家介绍到这里。
我来说两句