2016 - 2024

感恩一路有你

矩阵乘法算法 程序员必须掌握哪些算法?

浏览量:3013 时间:2021-03-15 15:04:01 作者:admin

程序员必须掌握哪些算法?

这取决于你想成为程序员的哪个方面。

程序员有后端、前端、移动端、大数据、人工智能等,如果只是前端和移动端,掌握基本的排序、红黑树、哈希等就差不多了。不需要更高级的,更重要的是系统API提供了很多算法方法。写作并不一定比系统的写作更好。如果你只是想成为一个普通的程序员,不想朝着高级和体系结构的方向发展,你会发现如果你不接触算法,那就没关系了。但是,当水流向上流动时,仍然需要该算法。特别是对于大数据和人工智能,算法是必要的,算法就是数学。

对于人工智能来说,线性代数、概率论等都是非常重要的,不仅算法可以解释它们。还有信息论,它计算信息传递的熵。个人推荐,可以看到国外的程序设计大赛,有很多测试算法,平时在开发中,更多的考虑如何减少信息传输,提高代码效率,这也是一种算法。

我们必须理解和掌握:1。树,2。散列,3。正规化,4。图算法,5。字符串匹配,6。但是我们需要掌握更多的经典数学算法,这是基础。算法离不开数学,算法打得好,一般数学都好。通常,建议多读一些关于线性代数、高等数学和算法的书,这些书对计算机有帮助。看看其他国家的算法,然后写一些更有启发性的程序。但作为程序员,算法只是其中的一部分,更重要的是如何快速迭代,降低开发成本,如何适应业务。

矩阵太大没法相乘怎么办?

您目前最大的问题是内存开销太大,直接导致连EXE文件都无法生成,所以首先解决的是内存分配问题。注意10000阶矩阵非常大。如果是双精度浮点类型,则每个矩阵将使用800m内存,其他类型将自行转换。因此,无论你有多少份拷贝,你必须小心不要有太多的拷贝,首先要考虑你能保存多少内存。由于静态存储空间的开销通常在可执行文件中有一个相同大小的副本,因此可以通过将矩阵的存储空间改为动态分配来解决连接问题。此外,还有两个问题。一是是否有必要使用稠密矩阵。我认为这是没有必要的,除了非常特殊的问题。我们应该用稀疏矩阵来解决这个问题。另一个是如果你必须使用稠密矩阵,你会实现高速乘法吗?如果只使用最常见的三环,无论打开什么编译优化选项,都会花费很长时间(VC6优化太弱)。即使是Strassen算法也非常慢。你应该给布拉斯图书馆打电话。否则,虽然没有上面说的那么夸张,但几分钟就可以算出,你数习几个小时是正常的。

矩阵乘法算法 堆排序的平均时间复杂度 朴素贝叶斯算法

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。