Diferença Algoritmo Randomizado e Recursivo

Anonim

Algoritmos aleatorizados versus algoritmo recursivo

Os algoritmos aleatórios incorporam uma sensação de aleatoriedade na sua lógica fazendo escolhas aleatórias durante a execução do algoritmo. Devido a essa aleatoriedade, o comportamento do algoritmo pode mudar mesmo para uma entrada fixa. Para muitos problemas, algoritmos randomizados fornecem as soluções mais simples e eficientes. Os algoritmos recursivos baseiam-se na ideia de que a solução para um problema pode ser encontrada ao encontrar soluções para menores sub-problemas do mesmo problema. A recursão é amplamente utilizada para encontrar soluções para problemas em ciência da computação e muitas linguagens de programação de alto nível que suportam a recursão.

O que é um Algoritmo Randomizado?

Os algoritmos aleatórios incorporam uma sensação de aleatoriedade ao fazer escolhas aleatórias que orientam a execução do algoritmo. Isso geralmente é feito tomando um conjunto de números aleatórios gerados por um gerador de números pseudorandom como uma entrada adicional. Devido a isso, o comportamento do algoritmo pode mudar mesmo para uma entrada fixa. Quicksort é um algoritmo amplamente conhecido que usa o conceito de aleatoriedade e tem um tempo de execução de O (n log n) independentemente das propriedades de entrada. Além disso, o método de construção incremental randomizado é usado para construir estruturas como o casco convexo na geometria computacional. Neste método, os pontos de entrada são permutados aleatoriamente e, em seguida, inseridos um a um na estrutura. Implementar um algoritmo randomizado é relativamente simples do que implementar um algoritmo determinista para o mesmo problema. O maior desafio na concepção de um algoritmo randomizado reside na realização de análises assintóticas para a complexidade do tempo e do espaço.

O que é um Algoritmo Recursivo?

Os algoritmos recursivos baseiam-se na ideia de que a solução para um problema pode ser encontrada ao encontrar soluções para sub-problemas menores do mesmo problema. Em um algoritmo recursivo, uma função é definida em termos da versão anterior de si mesma. É importante notar que essa auto-referência deve ter uma condição de término para evitar referenciar-se para sempre. A condição de término é verificada antes de se referir. O passo inicial de um algoritmo recursivo está relacionado à cláusula de base da definição recursiva do problema. Os passos que seguem a etapa inicial estão relacionados às cláusulas indutivas do problema. Os algoritmos recursivos fornecem uma solução mais simples em muitas situações e está mais próximo do modo de pensar natural do que o algoritmo iterativo para o mesmo problema. Mas em geral, os algoritmos recursivos exigem mais memória e são computacionalmente caros.

Qual a diferença entre um Algoritmo Randomizado e Recursivo?

Algoritmos aleatórios são algoritmos que usam uma sensação de aleatoriedade ao fazer escolhas aleatórias que podem afetar a execução do algoritmo, enquanto os algoritmos recursivos são algorítmos baseados na idéia de que uma solução para um problema pode ser encontrada ao encontrar soluções para Sub problemas menores do mesmo problema. Devido à aleatoriedade nos algoritmos aleatórios, o comportamento do algoritmo pode mudar mesmo para a mesma entrada (em diferentes execuções do algoritmo). Mas isso não é possível em algoritmos recursivos eo comportamento de um algoritmo recursivo seria o mesmo para uma entrada fixa.