首页 理论教育 算法的复杂性简介

算法的复杂性简介

时间:2022-02-28 理论教育 版权反馈
【摘要】:算法的复杂性是算法效率的度量,是评价算法优劣的重要依据。因此,算法的复杂性分析对算法的设计或选用有着重要的指导意义和实用价值。我们引入算法复杂性的概念是为了比较解决同一个问题的不同算法的效率,而不想去比较运行该算法的计算机的性能。因而,不应该取算法运行的实例时间作为算法复杂性的尺度。

2.1.3 算法的复杂性简介

算法的复杂性是算法效率的度量,是评价算法优劣的重要依据。一个算法的复杂性高低体现在运行该算法所需要的计算机资源的多少上面,所需的资源越多,我们就说该算法的复杂性越高;反之,所需的资源越低,则该算法的复杂性越低。

计算机的资源,最重要的是时间和空间(即存储器)资源。因而,算法的复杂性有时间复杂性和空间复杂性之分。

不言而喻,对于任意给定的问题,设计出复杂性的算法是我们在设计算法中追求的一个重要目标;另一方面,当给定的问题已有多种算法时,选择其中复杂性最低者,是我们在选用算法适应遵循的一个重要准则。因此,算法的复杂性分析对算法的设计或选用有着重要的指导意义和实用价值。

关于算法的复杂性,有两个问题要弄清楚:

1.用怎样的一个量来表达一个算法的复杂性;

2.对于给定的一个算法,怎样具体计算它的复杂性。

①时间复杂度

一般情况下,算法中基本操作重复执行的次数所花的时间简称时间复杂度。

②空间复杂度

与时间复杂度类似,空间复杂度是指算法在计算机内执行时所需存储空间的度量。

我们引入算法复杂性的概念是为了比较解决同一个问题的不同算法的效率,而不想去比较运行该算法的计算机的性能。因而,不应该取算法运行的实例时间作为算法复杂性的尺度。我们希望,尽量单纯地反映作为算法精髓的计算方法本身的效率,而且在不实际运行该算法的情况下就能分析出它所需要的时间和空间。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈