Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 算法分析:为什么平均案例分析依赖于概率&;投入的分配_Algorithm - Fatal编程技术网

Algorithm 算法分析:为什么平均案例分析依赖于概率&;投入的分配

Algorithm 算法分析:为什么平均案例分析依赖于概率&;投入的分配,algorithm,Algorithm,我一直在研究算法分析。在进入平均案例分析之前,这很有趣。与最坏和最好的案例不同,平均案例在数学上并不简单。在寻找最坏和最好的案例时,我可以利用现有线索(例如最坏的案例:寻找需要最多操作/时间的案例)开始寻找它们。但是,在一般情况下,这样的线索是不可用的。为了确定什么是一般情况?我必须假设输入的概率和分布。但我没有找到非常简单的解释和例子来清楚地帮助我认识到这一点,为什么平均案例分析取决于输入的概率&分布。请帮助我提供您简单而令人信服的解释和示例。谢谢您可以通过推理来思考平均案例是现实生活中实际案

我一直在研究算法分析。在进入平均案例分析之前,这很有趣。与最坏和最好的案例不同,平均案例在数学上并不简单。在寻找最坏和最好的案例时,我可以利用现有线索(例如最坏的案例:寻找需要最多操作/时间的案例)开始寻找它们。但是,在一般情况下,这样的线索是不可用的。为了确定什么是一般情况?我必须假设输入的概率和分布。但我没有找到非常简单的解释和例子来清楚地帮助我认识到这一点,为什么平均案例分析取决于输入的概率&分布。请帮助我提供您简单而令人信服的解释和示例。谢谢您可以通过推理来思考平均案例是现实生活中实际案例的理想平均值。时间/空间复杂性的“实际情况”取决于实际输入

但是,如果相关性不是线性的,则无法使用平均输入计算平均复杂度,需要考虑输入的整个分布

例如,为了在创建时比较排序算法的复杂性,使用了一种洞察,即输入数组/列表不是随机的,但通常包含已预排序的区域-因此收集了真实样本数据并用于分析/性能测试


我不确定你正在研究的文献中概率分布的确切含义,最有可能的是,对于连续/离散函数,有两个相关的概念:,在本文中,我们可以将其视为同义词。

你可以通过推理认为,理想情况下,平均案例是现实生活中实际案例的平均值。时间/空间复杂性的“实际情况”取决于实际输入

但是,如果相关性不是线性的,则无法使用平均输入计算平均复杂度,需要考虑输入的整个分布

例如,为了在创建时比较排序算法的复杂性,使用了一种洞察,即输入数组/列表不是随机的,但通常包含已预排序的区域-因此收集了真实样本数据并用于分析/性能测试

我不确定你正在研究的文献中概率分布的确切含义,最有可能的是,对于连续/离散函数,有两个相关概念:,在本文中,我们可以将其视为同义词。

为了定义任何平均值,你必须知道你平均的是什么,以及它们的可能性

这里的平均值是具有特定输入的程序的操作数

因此,您需要知道可能的输入是什么,以及每个输入的可能性有多大。你可以称之为输入的概率分布,但这听起来比实际情况更复杂

例如,您可以分析快速排序对包含数字1…N的随机无序数组执行的平均比较次数。然后,可能的输入是集合
{1,2,…,N}
的所有置换,并且每个可能的输入都具有相同的可能性(因此具有概率1/N!)。计算平均值并不是那么容易,但是你可以在大多数优秀的算法书籍(例如:Sedgewick)中找到一个推导过程。

为了定义任何平均值,你必须知道平均值是多少,以及每个平均值的可能性有多大

这里的平均值是具有特定输入的程序的操作数

因此,您需要知道可能的输入是什么,以及每个输入的可能性有多大。你可以称之为输入的概率分布,但这听起来比实际情况更复杂


例如,您可以分析快速排序对包含数字1…N的随机无序数组执行的平均比较次数。然后,可能的输入是集合
{1,2,…,N}
的所有置换,并且每个可能的输入都具有相同的可能性(因此具有概率1/N!)。计算平均值并不容易,但你可以在大多数优秀的算法书籍(例如:Sedgewick)中找到一个推导过程。

感谢@Aprillion的快速回复,如果相关性不是线性的-你指的是时间和实际输入之间的相关性。另外,你没有说任何关于概率的事情。你能再解释一下吗。感谢Hanks@Aprillion的快速回复,如果相关性不是线性的-你指的是时间和实际输入之间的相关性。而且你没有说任何关于概率的事情。你能再解释一下吗?谢谢