Algorithm 不同复杂度算法的实时CPU数据

Algorithm 不同复杂度算法的实时CPU数据,algorithm,Algorithm,有谁能告诉我一些可靠的资源/文件,其中对不同复杂度的算法所花费的时间进行了一些真实的讨论,例如O(logn)、O(n)、O(nlogn)、O(n^2)、O(n^3)等。我特别感兴趣的是一些文件/网站,可以回答以下问题: 给定一个机器配置(CPU、内存),以N个实例作为输入运行mergesort(或二进制搜索或其他一些标准算法)需要多少时间(毫秒/秒),其中N可以从100到100万不等 如果有人能向我指出一份文件,该文件不仅能给我以毫秒为单位的时间,而且能给我一个近似值/启发法,说明如果上述算法在

有谁能告诉我一些可靠的资源/文件,其中对不同复杂度的算法所花费的时间进行了一些真实的讨论,例如
O(logn)、O(n)、O(nlogn)、O(n^2)、O(n^3)
等。我特别感兴趣的是一些文件/网站,可以回答以下问题:

给定一个机器配置(CPU、内存),以N个实例作为输入运行mergesort(或二进制搜索或其他一些标准算法)需要多少时间(毫秒/秒),其中N可以从100到100万不等


如果有人能向我指出一份文件,该文件不仅能给我以毫秒为单位的时间,而且能给我一个近似值/启发法,说明如果上述算法在移动设备(智能手机)上运行,将产生的能量成本(焦耳/k焦耳),那就更好了.

我已经花了一些时间来做你要求的事情。这不是大学研究或实时/生产级别的代码,但可能会有所帮助

我已经实现了许多数据结构和算法,并使用排序、未排序等数据对它们进行了测试。


此外,您还可以自己轻松获取其他信息,因为所有代码都是开源的,并且都在网站上。

这似乎是一个“错误的问题”。(1) 复杂性类不会告诉你你想知道什么。(2) 即使您指定了
N
以及CPU和内存,算法也不会在时间或精力上产生成本。算法的精确实现很重要(这意味着使用的语言很重要),编译器/解释器的质量也很重要(特别是优化)。我想你要找的是一个基准网站,是的。我对一个精确的数字并不挑剔——因为现实世界中的程序很难是具有对数n时间复杂性的二进制搜索。我想要的是一个启发式算法,即在这个配置为N=1000的设备上运行时,这个算法在O(m^3+L)时间内运行需要xxx毫秒。我非常确信这是可以做到的,但从复杂性来看,这肯定是不可能做到的。我可以向您展示两种算法,它们都是
O(n^3)
,其中一种算法的运行时间是另一种算法的两倍。因此,复杂度界限在您所寻找的实际性能数据中几乎是偶然的。如果您的算法前面有不同的常数,这是非常可能的。但是我确信O(n^3)算法将比O(logn)算法更复杂,这就是我感兴趣的。我甚至对O(n^3),O(n^2)时间都不挑剔。这只是一个近似值,表示此配置的复杂性需要xxx ms/ns等。这只是一个近似值。我真的会很惊讶,即使这也不可用。当我参与其中时,Java mobile曾经充斥着这类东西。我想我已经使用了Futuremark和Anfymark,当时他们网站上每个手持设备/J2ME实现的基准测试结果会告诉你每秒绘制多少三角形,多少浮点运算,排序速度等等。这对你是否有用取决于特定算法您感兴趣的是,它恰好是详细基准测试结果的一部分,以及基准测试代码是实时报告还是仅报告相对分数。不过,我从未使用过电源基准测试。谢谢链接。在某些情况下,您的站点确实很有用。然而,与固定配置上的实际时间相比,我更感兴趣的是如何实际计算时间?或者,如果我可以这样说——“给定一个O(N^2)算法(A),其输入为N=100个32位整数,在一台具有给定CPU/内存配置的机器上执行时,A将花费多少时间(以ns/ms/sec为单位)?”。我对能回答这个问题的粗略的启发式/公式感兴趣(或者至少给我一个下限)。