2016 - 2024

感恩一路有你

python实现层次分析法 Python到底有多慢?

浏览量:1157 时间:2021-03-17 10:47:54 作者:admin

Python到底有多慢?

首先,我们用10个坐标点来模拟城市的位置。由于我们平时对Python的使用比较多,也比较熟悉,所以我们首先选择Python作为编程语言来实现蚁群算法,但是我们在第一时间就等着睡着了。猜猜看有多长时间,超过六分钟,这是效率的可怕之处。你不能让老师等6分钟在最后的回答中选择最佳路径。恐怕要暂停了。用C语言对蚁群算法进行了优化,优化结果不到1min。没有比较就没有坏处。在这之后,我深刻地认识到Python执行效率的可怕方面。

有些人可能想知道为什么C和Java比python更高效。事实上,它与语言的底层代码有关。C语言是汇编语言的二次开发,Java大多是C和C的二次开发,但是我们的Python可以分为两种情况,一种是Cpython,另一种是jpython,分别是C和Java的二次开发,所以效率比这两种语言要低。我看到消息说,为了解决python的效率问题,政府计划重新开发底层python代码。最近,我没有看到任何相关的新闻。毕竟,这个工作量是非常巨大的。

作为一名程序员,需要精通高深的算法吗?为什么?

太深的算法可以适当学习一些,但是比较常用的算法一定能做到。不仅算法岗需要学习这么多算法,开发岗也需要学习很多常用算法,这样才能在开发过程中编写出高性能的代码。我举个例子。以前,我用MR处理一段数据。在reduce阶段,我需要根据某个值保持顶部,但是如果不能使用其他算法,可以调用quick sort。最坏的时间复杂度是O(n^2)。当数据很大时,你不能用完。如果能够维护大顶堆或bfprt算法,时间复杂度会大大降低。所以算法是非常重要的。

那么,我们需要学习哪些算法?我将列出以下方向

常见的图论算法,如并集搜索、最短路径算法、二部图匹配、网络流、拓扑排序等

例如常见的二分搜索、三分搜索,特别是二分搜索、访谈常问、深度优先搜索和广度优先搜索,经典的八道数字题等等。还有一些启发式搜索算法,如模拟退火算法、遗传算法、粒子群算法、蚁群算法等。

Dijkstra算法用于寻找最短路径、最大子段和、数字DP等

这一类比较大,特别是在机器学习、人工智能、密码学等领域。比如数论中的大数分解,大素数的判定,扩展欧几里德算法,中国剩余定理,卢卡斯定理等等,组合数学中的博弈问题,卡特兰数公式,包含排除原理,波利亚计数等等,计算几何中的极性排序、凸包问题、旋转卡盘问题、多边形核问题、平面最近点对问题等。另外,还有一些矩阵的构造计算,如矩阵的快幂等。

如果要做算法作业,除了上面的一些应用算法外,主要是机器学习、深度学习算法。

python实现层次分析法 蚁群算法python实现 python粒子群算法包

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