¿Que é un algoritmo?

Descubra como os algoritmos executan o mundo

Un algoritmo é un conxunto de instrucións. A definición é realmente tan simple. Un algoritmo pode ser tan fácil como dar instrucións como esta:

  1. Baixa pola rúa
  2. Tome a primeira a dereita
  3. Atopar a segunda casa á esquerda
  4. Golpe na porta e
  5. Entregue o paquete.

Pero mentres a definición do algoritmo é simple, o significado real e como afecta as nosas vidas pode ser bastante complexo.

Un exemplo dun algoritmo

Un exemplo común dun algoritmo que usamos nas nosas vidas diarias é unha receita. Este conxunto de instrucións dános todos os ingredientes que precisaremos e indicacións sobre o que facer cos ingredientes. Parece fácil, non?

Pero e se non sabes onde se mantén o vaso medidor? Necesitarías un algoritmo para atopalo. Quizais precise un algoritmo sobre como usar un vaso de medición.

Así, mentres un algoritmo é un conxunto de instrucións, tamén debe ter en conta quen ou o que vai interpretar esas instrucións. Por exemplo, se dá indicacións a un amigo que especifica como chegar da súa casa á tenda de comestibles máis próxima, o seu amigo só saberá chegar a esa tenda se saben onde está a súa casa. Non son capaces (aínda) de atopar esa tenda de comidas en particular por dicir, a casa de outro amigo.

Así é como un algoritmo pode ser simple e complexo. E cando falamos en termos de algoritmos de computación, entender que unha computadora é capaz de facer é unha parte fundamental da formulación de algoritmos.

Como evolucionaron os algoritmos de ordenación

Un dos primeiros algoritmos creados foi a rutina de orde de burbullas. O tipo de burbulla é un método para clasificar números, letras ou palabras mediante un conxunto de datos, comparando cada conxunto de valores cara a fóra e intercambiándoos cando sexa necesario.

Este ciclo repítese ata que o algoritmo pode moverse por toda a lista sen ter que cambiar nada, o que significa que os valores son ordenados correctamente. Este tipo de algoritmo chámase a miúdo como un algoritmo recursivo porque se encadena unha e outra vez ata completar a tarefa.

O algoritmo pode parecer tan simple como:

  1. Ir ao primeiro valor.
  2. Comprobe ese valor contra o próximo valor e cambie posicións se é necesario
  3. Ir ao seguinte valor e repetir a comparación.
  4. Se estamos ao final da lista, volva á parte superior se algún valor se intercambia durante o ciclo.

Pero o tipo de burbullas non resultou ser o xeito máis eficiente de clasificar os valores. A medida que avanzaba o tempo, as computadoras fixéronse máis capaces de realizar tarefas complexas rapidamente, apareceron novos algoritmos de ordenación.

Un destes algoritmos percorre a primeira lista e crea unha segunda lista de valores ordenados. Este método só fai un único paso a través da lista orixinal e, con cada valor, percorrerá a segunda lista ata atopar o lugar correcto para poñer o valor. Normalmente, é máis eficiente que usar o método de clasificación de burbullas.

Aquí é onde os algoritmos poden estar realmente tolo. Ou realmente interesante, dependendo de como o vexas.

Mentres o método de clasificación de burbullas é considerado un dos métodos máis ineficientes de clasificar os valores de moitas maneiras, se a lista orixinal está presorizada correctamente, o tipo de burbulla pode ser un dos máis eficientes. Isto ocorre porque, nese caso, o algoritmo de clasificación de burbullas pasará á lista por unha soa vez e determinará que está ordenado correctamente.

Desafortunadamente, non sempre sabemos se a nosa lista está presorted, polo tanto, debemos elixir un algoritmo que será o máis eficiente para usar en media a través dunha gran cantidade de listas.

O que aprendemos do xénero Bubble

Algoritmos de Facebook e máis na vida cotiá

Algoritmos están a traballar axudando aos seres humanos todos os días. Cando buscas na web, está a traballar un algoritmo que intenta atopar os mellores resultados de busca. Pregunta a túa dirección de teléfono para indicacións e un algoritmo decide a mellor ruta para que tome. E cando navega por Facebook, un algoritmo decide cal das publicacións de Facebook do noso amigo son máis importantes para nós. (Esperemos que os nosos amigos non descubran que Facebook pensa que máis nos gusta).

Pero pensar algorítmicamente pode axudarnos moito máis alá da nosa vida informática. Ata pode axudarnos a crear un mellor bocadillo.

Digamos que comece con dúas franxas de pan, estendendo a mostaza nunha roda e a maionesa noutra rodaja. Poño unha porción de queixo sobre o pan coa maionesa, un xamón encima, algunhas leitugas, dúas rodajas de tomate e despois poñelas con esa porción coa mostaza sobre el. Bo bocadillo, certo?

Sen dúbida, si me come de inmediato. Pero se o deixo por unha mesa por un tempo, esa parte superior do pan podería quedar empapada de tomar un pouco de tomate. É un problema que non prevei moito, e podo facer bocadillos durante anos antes de decatarme, pero unha vez que fago, podo comezar a pensar en formas de cambiar o meu algoritmo para construír un mellor bocadillo.

Por exemplo, podería desfacerse do tomate. Pero non quero perder ese sabor a tomate. En cambio, podo poñer o tomate no bocadillo despois do pan e da lechuga. Isto permite que a leituga forme unha barreira protectora entre o tomate eo pan.

Así é como evoluciona un algoritmo. E un algoritmo non ten que ser executado por unha computadora para ser un algoritmo. Un algoritmo é un proceso e os procesos están ao noso redor.