我从教授那里得到了原位算法的定义,但我不理解。
原位算法是指与Θ(1)内存一起运行的算法。
这意味着什么?
我从教授那里得到了原位算法的定义,但我不理解。
原位算法是指与Θ(1)内存一起运行的算法。
这意味着什么?
Answers:
首先,让我们解开含义。
大和大Θ是函数类。有一个正式的定义在这里,但是对于这个问题的目的,我们说一个函数˚F是Ø (1 )如果有一个恒定的Ç其中,对于所有的X,˚F (X )≤ Ç。也就是说,f的增长最多与常数函数一样快。
BIG- 没有太大意义恒定功能,因为描述算法的时间或空间使用时,没有太多低于常量。但要解释这是什么意思,˚F ∈ Θ (1 )如果有一些常数Ç ,ð这样,对于所有的X,d ≤ ˚F (X )≤ Ç。也就是说,f的增长至少和恒定函数一样快,并且最多也一样快。
现在,这与内存使用情况有什么关系?考虑到一些算法。在给定输入n的情况下,有一些(数学)函数可以在大小为n的任何输入上给出算法A的最大内存使用量。让我们来调用这个函数米ê 米。
因此,现在我们结合了两个概念。如果算法使用内存,则其内存使用率函数位于Θ (1 )中,这意味着存在某个d ,c,对于任何输入,所使用的内存都在d和c之间。
简而言之,这意味着该算法的内存使用量处于某个恒定范围内,而与输入无关。
通常,存储器功能不考虑用于存储算法输入的存储器,因为否则存储器使用将始终至少为。