Articles of recursion

Quicksort: Iterativo ou Recursivo

Aprendi sobre o tipo rápido e como ele pode ser implementado no método recursivo e iterativo. No método iterativo: Empurra o intervalo (0 … n) para a pilha Particionar a matriz dada com um pivô Pop o elemento superior. Empurrar as partições (intervalo de índice) para uma pilha se o intervalo tiver mais de um […]

modelo variadico recursivo para imprimir o conteúdo de um pacote de parâmetros

Como é possível criar um modelo variadico recursivo para imprimir o conteúdo de um pacote paramater? Eu estou tentando com isso, mas não consegue compilar: template std::string type_name () { return std::string(typeid(First).name()) + ” ” + type_name(); } std::string type_name () { return “”; } Como terminarei a recursion?

Existe alguma maneira de fazer loops nesteds n-level em Java?

Em outras palavras, posso fazer algo como for() { for { for { } } } Exceto N vezes? Em outras palavras, quando o método que cria os loops é chamado, ele recebe um parâmetro N e o método cria N desses loops nesteds um no outro? Claro, a ideia é que deve haver uma […]

Chamada ConcurrentHashMap.computeIfAbsent () Recursiva nunca termina. Bug ou “recurso”?

Algum tempo atrás, eu escrevi sobre uma maneira funcional do Java 8 de calcular números de fibonacci recursivamente , com um cache ConcurrentHashMap e o novo e útil método computeIfAbsent() : import java.util.Map; import java.util.concurrent.ConcurrentHashMap; public class Test { static Map cache = new ConcurrentHashMap(); public static void main(String[] args) { System.out.println( “f(” + 8 […]

Como funciona a function recursiva de fibonacci?

Sou novo em Javascript e estava lendo sobre ele, quando cheguei a um capítulo que descrevia a recursion de funções. Usou uma function de exemplo para encontrar o enésimo número da seqüência de Fibonacci. O código é o seguinte: function fibonacci(n) { if (n < 2){ return 1; }else{ return fibonacci(n-2) + fibonacci(n-1); } } […]

Escrevendo foldl usando foldr

Em Real World Haskell , Capítulo 4. Programação Funcional Escreva foldl com foldr: — file: ch04/Fold.hs myFoldl :: (a -> b -> a) -> a -> [b] -> a myFoldl fz xs = foldr step id xs z where step xga = g (fax) O código acima me confundiu muito, e um cara chamado dps […]

compreendendo a recursion básica

public static void main (String[] args) { System.out.println(factorial(5)); } public int factorial(int n) { if(n <= 1){ return 1; } else{ return n * factorial(n – 1); } } Eu escrevi o acima diretamente aqui, então talvez não compile, mas acho que sim. Alguém pode explicar explicitamente como isso funciona no sentido de como ele […]

Recursão no Oracle

Eu tenho a seguinte tabela em um oracle: Parent(arg1, arg2) e eu quero o fechamento transitivo da relação pai. Ou seja, eu quero a tabela a seguir Ancestor(arg1, arg2) Como isso é possível no Oracle? Eu estou fazendo o seguinte: WITH Ancestor(arg1, arg2) AS ( SELECT p.arg1, p.arg2 from parent p UNION SELECT p.arg1 , […]

Gerar opcode de chamada de cauda

Por curiosidade eu estava tentando gerar um código de operação de chamada de cauda usando C #. Fibinacci é fácil, então meu exemplo c # tem esta aparência: private static void Main(string[] args) { Console.WriteLine(Fib(int.MaxValue, 0)); } public static int Fib(int i, int acc) { if (i == 0) { return acc; } return Fib(i […]

Tamanho máximo da pilha de chamadas excedido na function recursiva SetTimeout (Javascript)

Eu tenho uma function SetTimeout recursiva que clica em um filtro na minha página depois que os filtros são carregados (eles são carregados através do Ajax, portanto, não estão disponíveis imediatamente no carregamento da página). $scope.clickFilter = function () { var filter = $(‘.filter-item’) .find(‘input[value=”‘ + $scope.activeFilter + ‘”]’); if (filter.length < 1) { setTimeout($scope.clickFilter(), […]