Diferença entre algoritmo aleatório e recursivo

Diferença entre algoritmo aleatório e recursivo
Diferença entre algoritmo aleatório e recursivo

Vídeo: Diferença entre algoritmo aleatório e recursivo

Vídeo: Diferença entre algoritmo aleatório e recursivo
Vídeo: BBA vs BCA Explained in Nepali 2024, Novembro
Anonim

Algoritmo Aleatório vs Recursivo

Algoritmos randomizados incorporam um senso de aleatoriedade em 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 aleatórios fornecem as soluções mais simples e eficientes. Algoritmos recursivos são baseados na ideia de que a solução para um problema pode ser encontrada encontrando soluções para subproblemas menores do mesmo problema. A recursão é amplamente usada para encontrar soluções para problemas em ciência da computação e muitas linguagens de programação de alto nível suportam a recursão.

O que é um algoritmo aleatório?

Os algoritmos aleatórios incorporam um senso de aleatoriedade ao fazer escolhas aleatórias que orientam a execução do algoritmo. Isso normalmente é feito usando um conjunto de números aleatórios gerados por um gerador de números pseudoaleatórios 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 aleatório é usado para construir estruturas como o casco convexo na geometria computacional. Neste método, os pontos de entrada são permutados aleatoriamente e então inseridos um a um na estrutura. Implementar um algoritmo aleatório é relativamente simples do que implementar um algoritmo determinístico para o mesmo problema. O maior desafio na concepção de um algoritmo randomizado está 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 são baseados na ideia de que a solução de um problema pode ser encontrada encontrando soluções para subproblemas menores do mesmo problema. Em um algoritmo recursivo, uma função é definida em termos da versão anterior de si mesma. É importante observar que essa auto-referência deve ter uma condição de término para evitar a referência a si mesma para sempre. A condição de término é verificada antes de fazer referência a si mesma. O passo inicial de um algoritmo recursivo está relacionado à cláusula base da definição recursiva do problema. Os passos que seguem o passo 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ão mais próximos do modo natural de pensar do que o algoritmo iterativo para o mesmo problema. Mas, em geral, algoritmos recursivos requerem mais memória e são computacionalmente caros.

Qual é a diferença entre um algoritmo aleatório e um algoritmo recursivo?

Algoritmos aleatórios são algoritmos que usam um senso de aleatoriedade fazendo escolhas aleatórias que podem afetar a execução do algoritmo, enquanto algoritmos recursivos são algoritmos baseados na ideia de que uma solução para um problema pode ser encontrada encontrando soluções para subproblemas 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 e o comportamento de um algoritmo recursivo seria o mesmo para uma entrada fixa.

Recomendado: