发布网友 发布时间:2023-02-21 01:48
共1个回答
热心网友 时间:2023-09-22 23:51
2018/08/12
看过那么多的算法书, 每本书都在讲排序,分析各种排序算法的原理,分析他们的时间复杂度、空间复杂度。
结果我并没有真正的领悟到要这样分析。因为没有一本书去说,算法的通用性到底在哪。你学那么多的基础算法,到底给你带来了什么。这也是一直以来,我迷茫的地方。
也是从《算法设计手册》那里看到的,他想传达的意思就是,排序算法可能在别的领域(一直以来就感觉是一个给相关数据排序的过程)没有那么突出????(这句话我自己想表达什么意思) (2019/02/24 修改)
比较重要的一点就是,利用排序算法可以简化一个问题。当时书上提到的一个例子就是想求两个整数集合是否重合(是否有交集)。当然这个问题比较简单,我们初始在想的时候就能马上想起来用排序的方法来求交集。
他分解的手段比较高明,提供了三种思路。
1)将大的数组先排序,然后遍历另一小的数组去在另一个数据中查找。而且排序后的数组可以用二分法来进行查找。
2)将小的数据先排序,后面同(1)
3)将两个数据都排序,然后取他们的最大值最小值来进行比较。
(最后说一句,他多说了一句哈希表的概念,就是将一个哈希表做了哈希之后,另一数组直接哈希进行查找,这个更快)
我觉得,这个里面呢,并不是强调这个算法,而是说你学会了排序之后,就将后续的计算复杂度以及问题的解决思路给打开,最重要的是能不能从别的问题的角度来解决问题。
我觉得对我来说,感觉比较深的,就是有一次我分析数据,感觉没什么分析的思路,但是就利用shell的排序命令,就让我看到了这个中间的规律。这就是让人能够打开思路的方式。
多说一句,我觉得我看了这么多书,我觉得基础的东西,虽然细节不慎理解,但是都觉得这些基础的东西没用。就是因为他没有给我带来实质性的启发。这本书(《算法设计手册》)这个东西就给出了我相应的提醒。。。难道就是书的问题??
就差那么一句提醒,当然不仅仅是提醒,还有就是你用范例也好,让我真正的感觉到了这个东西有用。
2018/08/12
但是反过来说就是,这个东西就是靠自己去领悟。哎,但领悟也是需要积累的。
另外,不单单是排序的问题,很多书也都提到了递归这个概念,但是这个东西也是没有很深的理解,换句话说,没有应用。
但这本书里面的一个点说的很好,那就是对现实问题进行建模,从而把现实模型抽象地转化到基础的数据结构上来解决问题。我觉得这个地方,才是最重要的。
2018/08/25
但是上面这个问题,再抽象层次上应该怎么理解??