Eu tenho a definição de um algoritmo in situ do professor, mas não o entendo.
Algoritmos in situ referem-se a algoritmos que operam com memória Θ (1).
O que isso significa?
Eu tenho a definição de um algoritmo in situ do professor, mas não o entendo.
Algoritmos in situ referem-se a algoritmos que operam com memória Θ (1).
O que isso significa?
Respostas:
Primeiro, vamos descompactar o que significa.
Big , e grande Θ , são classes de funções. Há uma definição formal aqui , mas para os fins da presente pergunta, dizemos que uma função f está em O ( 1 ) se há uma constante c , onde, para todos os x , f ( x ) ≤ C . Ou seja, f cresce no máximo tão rápido quanto uma função constante.
Big- não significa muito para funções constantes, porque ao descrever o tempo do algoritmo ou o uso do espaço, não há muito abaixo da constante. Mas, para explicar o que isso significa, f ∈ Θ ( 1 ) se existem algumas constantes c , d tais que, para todos x , d ≤ f ( x ) ≤ c . Ou seja, f cresce pelo menos tão rápido e, no máximo, tão rápido quanto uma função constante.
Agora, o que isso tem a ver com o uso de memória? Considere algum algoritmo . Existe alguma função (matemática) que, dada uma entrada n , fornece o uso máximo de memória do seu algoritmo A em qualquer entrada do tamanho n . Vamos chamar essa função m e m .
Então, agora combinamos nossos dois conceitos. Se um algoritmo utiliza de memória, em seguida, a sua função é a utilização da memória em Θ ( 1 ) , o que significa que existe algum d , c tal que, para qualquer entrada, a memória usada é entre d e c .
Em resumo, isso significa que o uso de memória do algoritmo está em um intervalo constante, independentemente da entrada.
Geralmente, a função de memória não leva em consideração a memória usada para armazenar a entrada no algoritmo, pois, caso contrário, o uso da memória sempre seria pelo menos .
Complexidade constante do espaço do algoritmo
A quantidade de memória que seu algoritmo usa é independente da entrada.
Diz-se que um algoritmo tem complexidade de espaço constante se fizer uso de uma quantidade fixa de espaço. Pode ser variáveis ou uma matriz de exatamente 10 elementos.
No entanto, os algoritmos in situ executam a função pretendida na própria entrada e, portanto, requerem muito pouco ou nenhum espaço extra. A entrada geralmente é substituída pela saída à medida que o algoritmo é executado. ( ref )
Os algoritmos in situ não consideram o espaço ocupado pela entrada e levam em conta apenas o espaço extra, enquanto calculam a complexidade do espaço.