《算法技术手册》一2.3 最好、最坏和平均情况下的性能分析

简介: 本节书摘来华章计算机《算法技术手册》一书中的第2章 ,第2.3节, George T.Heineman Gary Pollice Stanley Selkow 著 杨晨 曹如进 译 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.3 最好、最坏和平均情况下的性能分析

也许有人会问,上述结果是否对于所有的输入问题样本都成立?第二种排序算法对于同等规模的其他数据样本表现会如何呢?
输入数据可能包含大量已排好序的元素。
输入数据可能包含重复值。
无论输入数据规模n是多少,元素集合都可以从一个非常小的数据集扩展而来,只不过会有相当多的重复值。
从图2-1上可以看出,第四种排序算法虽然在排序n个乱序字符串时最慢,但它在处理已经排好序的数据时却是最快的。不过,这种领先优势消失得非常快,如图2-2所示,在排序32个乱序的字符串时,第三种排序算法的性能最好。
2017_09_19_153908
图2-2:处理完全或者几乎有序的数据时,排序算法的性能
尽管如此,如果一个包含n个字符串的输入“近乎有序”,比如输入数组由有序数组中n/4的字符串(占总字符串的25%)与距离其4个位置的元素交换而得。那么,最终结果会有些出乎意料,如图2-3所示,第四种排序算法的性能表现要远远好于其他排序算法。
对于许多问题来说,单一的最优算法并不存在。选择一个算法需要对问题有着充分的理解,并且知道这个问题将要处理数据规模的概率分布情况,此外还必须考虑算法的实际行为。
这里提供了一些指导性的信息。算法通常可以按以下三类情况进行分析:
最坏情况
最坏情况是指算法对于一类问题样本表现出的最坏性能。通常,算法设计人员在描述最坏情况时,会指出导致算法无法高效执行的输入数据的特征,而并非找出特定的输入数据。
平均情况
平均情况是指算法在随机给定的数据上期望的执行情况。某些问题样本可能会由于一些特例而导致程序需要更长的时间才能完成,但是大多数情况都并非如此。平均情况描述了一般用户对算法性能的期望。
最好情况
最好情况是指算法对于一类问题样本表现出的最好性能。对于这类样本,算法只需要执行很少的计算。在实际情况中,最好情况很少出现。
通过了解算法在每种情况下的性能,读者就能判断它是否适用于特定场景。
2017_09_19_154018
图2-3:第四种排序算法在处理几乎有序的数据时性能最好

相关文章
|
8月前
|
编解码 资源调度 物联网
正交时频空间(OTFS)调制技术:理论基础与性能分析
正交时频空间(OTFS)调制技术在延迟-多普勒域进行信号设计,有效应对高多普勒、短包传输等5G挑战。相比传统OFDM,OTFS通过全时频分集和信道硬化,显著提升高速移动场景下的鲁棒性与分集增益,仿真显示其在BLER性能上可获得3-4dB SNR增益,尤其适用于车联网、物联网等应用场景。
1585 0
正交时频空间(OTFS)调制技术:理论基础与性能分析
|
11月前
|
监控 算法 安全
基于 C# 基数树算法的网络屏幕监控敏感词检测技术研究
随着数字化办公和网络交互迅猛发展,网络屏幕监控成为信息安全的关键。基数树(Trie Tree)凭借高效的字符串处理能力,在敏感词检测中表现出色。结合C#语言,可构建高时效、高准确率的敏感词识别模块,提升网络安全防护能力。
282 2
|
10月前
|
运维 监控 算法
基于 Java 滑动窗口算法的局域网内部监控软件流量异常检测技术研究
本文探讨了滑动窗口算法在局域网流量监控中的应用,分析其在实时性、资源控制和多维分析等方面的优势,并提出优化策略,结合Java编程实现高效流量异常检测。
414 0
|
监控 算法 JavaScript
基于 JavaScript 图算法的局域网网络访问控制模型构建及局域网禁止上网软件的技术实现路径研究
本文探讨局域网网络访问控制软件的技术框架,将其核心功能映射为图论模型,通过节点与边表示终端设备及访问关系。以JavaScript实现DFS算法,模拟访问权限判断,优化动态策略更新与多层级访问控制。结合流量监控数据,提升网络安全响应能力,为企业自主研发提供理论支持,推动智能化演进,助力数字化管理。
324 4
|
存储 监控 算法
内网监控桌面与 PHP 哈希算法:从数据追踪到行为审计的技术解析
本文探讨了内网监控桌面系统的技术需求与数据结构选型,重点分析了哈希算法在企业内网安全管理中的应用。通过PHP语言实现的SHA-256算法,可有效支持软件准入控制、数据传输审计及操作日志存证等功能。文章还介绍了性能优化策略(如分块哈希计算和并行处理)与安全增强措施(如盐值强化和动态更新),并展望了哈希算法在图像处理、网络流量分析等领域的扩展应用。最终强调了构建完整内网安全闭环的重要性,为企业数字资产保护提供技术支撑。
344 2
|
8月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
736 0
|
8月前
|
数据采集 分布式计算 并行计算
mRMR算法实现特征选择-MATLAB
mRMR算法实现特征选择-MATLAB
469 2
|
9月前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
379 3
|
8月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
363 8

热门文章

最新文章