¿Por qué son tan importantes los algoritmos?

Los algoritmos son los componentes básicos de los programas de computadora. Son tan importantes para la programación como lo son las recetas para cocinar.

Definición de algoritmo

Un algoritmo es un procedimiento bien definido que toma entrada y produce salida. La analogía con una receta es buena aquí, ya que un cocinero tomará ingredientes (la entrada), mezclará cosas y las cocinará (el procedimiento), y producirá un plato (la salida).

La principal diferencia aquí es que los algoritmos son de naturaleza matemática o textual. Los algoritmos que utilizamos en la programación son cualquier serie de pasos que producen un resultado que nos interesa, por ejemplo, buscar un elemento en una lista.

Tipos de algoritmos

Los tipos básicos de algoritmos incluyen:

  • buscar o buscar un elemento en una lista
  • ordenar o poner una lista en orden alfabético o numérico
  • ruta más corta, o encontrar la forma más rápida en un mapa desde el punto A al punto B
  • compresión o reducir el tamaño de un archivo de datos

Eso es solo una muestra rápida. Existen realmente diferentes tipos de algoritmos que se definen para cualquier propósito especial que se te ocurra.

Discusión de algoritmos.

Una vez que se define un algoritmo, podemos nombrarlo y estudiar sus propiedades. Las propiedades de un algoritmo pueden estudiarse matemáticamente para que sepamos cuáles funcionarán más rápido dada una mayor cantidad de entrada.

Un ejemplo sería la clasificación de algoritmos. Algunos algoritmos de clasificación comunes son:

  • ordenar por inserción, como tomar una baraja de cartas e insertar cada carta una por una en un orden ya ordenado
  • tipo de selección, como tomar un mazo de cartas y recorrer el mazo y encontrar la carta más pequeña cada vez y ponerla al frente del mazo
  • fusionar la ordenación, como tomar una baraja de cartas y dividirla una y otra vez, ordenar cada baraja parcial y luego fusionarlas en orden ordenado
  • tipo burbuja, como tomar una baraja de cartas, hacer múltiples pases a través de ella e intercambiar pares de cartas adyacentes que están fuera de orden, hasta que finalmente las cartas más pequeñas burbujean hacia la parte superior.

Orden de algoritmos

La rapidez con la que un algoritmo se ejecuta básicamente para un tamaño de entrada dado se denomina orden del algoritmo. Queremos algoritmos con un orden menor, por lo que su tiempo de ejecución no crecerá tan rápido cuando se agregue más información. De lo contrario, su programa se detendrá.

Algoritmos versus hardware

La persona promedio que no es programador piensa que solo necesitamos lanzar más hardware a los problemas para resolverlos. Sin embargo, el estudio de algoritmos es en realidad más importante, porque en casos realmente malos, el algoritmo incorrecto puede hacer que su programa demore millones de años en ejecutarse. Ninguna cantidad de hardware más rápido puede compensar eso.

Cuando los algoritmos a veces no le importan al programador

Muchos lenguajes de programación modernos elegirán un algoritmo y lo implementarán por usted, luego solo le darán una función para llamar. Por ejemplo, su lenguaje de programación probablemente ofrecerá funciones de búsqueda y clasificación. Luego puede llamar a la función sin preocuparse por qué algoritmo se usa o cómo se implementa. Ese es el trabajo de los diseñadores de idiomas.

Imagina por un segundo que tienes dos cubos de Rubik sentados frente a ti. Uno de ellos puede usar algoritmos (como cuántas veces o en qué dirección girar una cara), y el otro tiene que encontrar su propio camino.

¿Qué camino será más rápido?

Casi seguro que la primera manera. Ya existen cientos de algoritmos bien establecidos para resolver un cubo de Rubik, y tratar de inventar su propio método para resolverlo llevará mucho más tiempo que utilizar los actuales. Peor que eso, es muy probable que el método que elija sea menos eficiente y más lento que los métodos que ya existen. E incluso peor que eso, el método que invente probablemente solo funcione para su configuración específica del cubo de Rubik, y teniendo en cuenta que hay 43 configuraciones quintilianas diferentes, su método no hará el trabajo si algo cambia.

En términos informáticos, los algoritmos le dan al programador el poder de implementar código eficiente, confiable y rápido en un período de tiempo más corto. Sabes que funcionará porque ha sido probado en batalla en aplicaciones reales. Y, lo mejor de todo, no importa cuál sea la configuración del cubo de Rubik (es decir, su idioma, su arquitectura, su estilo de codificación), sabe que siempre funcionará.

De vez en cuando, Google cambia su algoritmo de búsqueda para proporcionar a los usuarios que buscan en Google algunos resultados de búsqueda inmensamente impecables. Una búsqueda en Google es simple ya que un usuario abre el cuadro de búsqueda en dispositivos o en el escritorio y luego busca cualquier cosa poniendo algunas palabras y luego ingresa.

Google proporciona información al proporcionar varias listas de búsquedas relacionadas y esa búsqueda debería ser fructífera y, especialmente, la primera página de la búsqueda debería haber sido las listas más poderosas de sitios web que deberían estar más cerca de lo que el usuario pretendía buscar.

Es por eso que de vez en cuando Google ha estado actualizando su algoritmo de búsqueda para crear los resultados de búsqueda más definitivos y prospectivos. Este es el aspecto más importante para los webmasters cuando construyen su sitio web, siempre se mueven hacia lo que Google quiere. Como sabemos, ha habido muchos otros motores de búsqueda, pero todavía indexamos desde Google lo que más importa.

De vez en cuando, Google ha estado proporcionando tantas aplicaciones fructíferas para generar ingresos cada vez más definitivos. Es por eso que cada web master aprecia que su sitio web esté bien indexado con Google. Construyeron sus sitios de la manera que Google quiere y es por eso que observaron de cerca la forma en que Google cambia sus algoritmos de búsqueda.

El algoritmo de búsqueda es un término técnico que es el proceso que Google utiliza para indexar y clasificar toneladas de páginas de miles de millones de sitios web en todo el mundo. Indexa sitios web en función de las páginas y otra información que ha incorporado. De vez en cuando, Google cambia sus algoritmos de búsqueda para proporcionar mejores y mejores resultados de búsqueda. Utiliza una mejor tecnología para averiguar si la página prevista del sitio web proporciona mejores resultados de búsqueda y está más cerca de lo que el usuario busca en Internet.

Hace más hincapié en los buenos resultados de búsqueda cualitativos y tiene la intención de proporcionar resultados de búsqueda más cercanos a los usuarios. Los últimos algoritmos de búsqueda pretenden proporcionar a los usuarios información precisa y más rápida. En la era del teléfono inteligente y de Internet más rápido, las personas desean encontrar resultados de búsqueda inmediatos cuando lo deseen, y es por eso que Google cambia sus algoritmos de búsqueda de vez en cuando para obtener mejores resultados de búsqueda.

Se estima que estos cambios en el algoritmo de búsqueda han sido tremendos y hace casi una década que se produjo una revisión tan importante de los cambios en el algoritmo del motor de búsqueda. La mayor parte del algoritmo del motor de búsqueda se ha escrito de una manera completamente nueva para comprender los cambios recientes en los que el flujo de datos ha sido tremendo y, con el debido tiempo, la forma en que fluye la información significa la importancia atribuida al tiempo cambiante y a Google se esfuerza por incorporar parámetros cambiantes modernos en todos sus algoritmos de búsqueda.

En los años posteriores, Google ha estado ocupado con Penguin, Panda y otras actualizaciones de algoritmos de búsqueda, pero las últimas actualizaciones de Hummingbird muestran los códigos completamente reescritos de este algoritmo de búsqueda. Las últimas actualizaciones del algoritmo de código de Hummingbird parecen proporcionar resultados de búsqueda completamente nuevos y más rápidos han cambiado el algoritmo de búsqueda casi completo para proporcionar uno completamente nuevo.

En los últimos años, con la rápida aparición de Android como plataformas preferibles para muchos webmasters, brindan enormes servicios para los resultados de búsqueda. Con la incorporación de la computación en la nube y el día a día, las opciones de almacenamiento de los teléfonos inteligentes están en aumento y esto hace que la creación y el almacenamiento de datos, así como el intercambio de datos sea inminente con límites de velocidad más rápidos.

Aparte de esto con Android, la presencia de la aplicación ha sido tremenda y los impactos de la aplicación en la personalización de todo, desde el inicio de cada personalización, se pueden hacer con el mismo uso, por supuesto, con el debido permiso del usuario. Consideremos un ejemplo de la aplicación Google Maps. Es una de las aplicaciones más versátiles y utiliza las experiencias del usuario para llegar a diferentes destinos y compartir estos destinos para tener una descripción completa y detallada.

Supongamos que deseo pasar a una dependencia fresca, que es apenas cuatro minutos en bicicleta y comprar algunos ingredientes esenciales y para esto debería habilitar el modo de conducción del mapa para que pueda registrar el movimiento y luego preguntarle dónde para ir y luego escribo confianza nueva y luego comienza el movimiento y comienza la grabación de la ruta y es importante activar la conexión de datos para tener la información más precisa y mientras regresaba a casa, me pregunta si el el estacionamiento es bueno o malo y así sucesivamente, y cuando comparto esa información sobre mi mudanza a un lugar cercano en Google+, en última instancia, después de uno o dos días me ha proporcionado un cuestionario configurado en Google Rewards y me proporciona algunos créditos de Google Play de algunas rupias y con él pude comprar la aplicación paga de forma gratuita.

Con él, Google alienta a los usuarios a compartir su ubicación y su información móvil para que siempre que lleguen a un lugar de extrema importancia, como el de Reliance Fresh en este caso, podamos compartir algunas estadísticas vitales sobre la información relacionada con estas ubicaciones.

Todos estos son parte integrante de los algoritmos de búsqueda conversacional en los que encontramos una gran cantidad de gestión de información impulsada por la comunidad, donde la mayoría de estos son una revisión casi práctica dada por los usuarios y la mayoría de estos deberían ayudar inmensamente a demostrar la eficacia de la distribución de información en el lado derecho. Hemos estado esperando la búsqueda conversacional donde las personas incluso no tuvieron tiempo de escribir nada y desean hablar sobre la búsqueda de un término relacionado y esperan que Google lo entienda y luego presente los resultados de la búsqueda desde allí.

En este tipo de búsquedas, el algoritmo anterior de las búsquedas de Google necesita un recorrido completo para administrar y responder a estos conocimientos de inteligencia artificial. Es por eso que al considerar todos estos aspectos de la informática moderna y los desafíos que se presentan debido al advenimiento y la expansión de las búsquedas de Google a diferentes dispositivos, es imprescindible que Google anote todo el código de una manera completamente nueva y avanzada para descubrir el Lo más fructífero de comprender cuál debería ser el objetivo principal del motor de búsqueda es entregar los resultados de búsqueda más destacados para todo.

Por lo tanto, no podemos decir que las actualizaciones de algoritmos de este motor de búsqueda es el nuevo motor dentro de las partes antiguas, ya que con el debido tiempo, los dispositivos y los formatos de uso de los motores de búsqueda fuera de Google han cambiado dinámicamente desde el navegador web de la computadora hacia las aplicaciones de Android y las aplicaciones actualizadas regularmente brindan grandes incentivos para la personalización completa de cada aspecto de la búsqueda de Google y la forma en que los dispositivos Android están ganando importancia y ha recibido muchos comentarios correctos y directos para todo lo que proporciona uno de los resultados de búsqueda prácticos más apreciables y prospectivos para todo el mundo.

Google tiene la intención de que su nuevo algoritmo de búsqueda Hummingbird tenga la intención de comprender el significado detrás de las palabras que están destinadas a la búsqueda. Podría extraer mucha información en tiempo real, como la del lugar, lo que significa que debería ser un lugar donde hay una estructura de ladrillo y mortero, Samsung mobile significa un dispositivo móvil particular de categorías particulares y luego avanza para encontrar lo correcto y asertivo significados del término de búsqueda que han intentado los usuarios.

Lo que debería hacer es que la cercanía de los resultados de la búsqueda debe presentarse de una manera más agradable y limpia para tener resultados de búsqueda más significativos para los usuarios. Además de esto, estas actualizaciones deben tener en cuenta el significado previsto del usuario al realizar estas consultas de búsqueda y, por otro lado, esto proporciona la información útil sobre cómo descubrir el uso de la inteligencia artificial en los algoritmos de búsqueda.

En tiempos reales, el usuario apenas podía entender o descubrir de qué se trata todo esto. Se trata de Google para descubrir las páginas reales y significativas de cada acción de los usuarios en términos de poner las palabras en su barra de búsqueda o en las aplicaciones de búsqueda.

Google desea descubrir los significados reales de todas y cada una de las palabras de comando que se han dado como entrada en su barra de búsqueda y lentamente descubre la gestión de información real y perfecta adjunta.

Todo esto está haciendo que Google sea mejor y más refinado y pulido para que coincida en el descubrimiento del aspecto más vital de la comprensión de lo que el ser humano necesita descubrir sobre estos algoritmos de búsqueda y, en última instancia, todos estos resultados proporcionan parámetros absolutamente mejores para comprender y descubrir los significados reales detrás de todas y cada una de las consultas de búsqueda. [1]

Notas al pie

[1] ¿Por qué es tan importante el algoritmo del motor de búsqueda de Google?

Creo que la premisa es simplemente incorrecta, al menos en relación con otros conceptos: es decir, los algoritmos son mucho menos importantes que comprender estas nociones:

  • abstracción : eliminar los factoides redundantes al pensar e implementar nociones [reales].
  • modularidad : distinción entre la interfaz y la implementación, y poner cosas que se relacionan entre sí en algún tipo de vecindad [pseudo-] textual.
  • estructuras : gráficos, árboles, estructuras vinculadas, matrices …
  • tipo : ¿qué es realmente un tipo? ¿Conjunto? Un contrato de condiciones previas y posteriores, etc.

Y cómo manifestar adecuadamente estos conceptos en algunos lenguajes canónicos para cada uno de los paradigmas principales, por ejemplo, en C, Haskell, Java / Ruby, C ++.

Pero la gente parece apreciar los algoritmos de memorización. Bien podría traer algo de crédito a una mente incapaz de pensar en nociones más profundas y menos copiables.

Dicho esto, tener una comprensión de la complejidad algorítmica vale la pena, incluida la comprensión de las distinciones entre P, NP y problemas super-exponenciales.

Es decir, es mucho más importante comprender y sentir qué es un gráfico que memorizar algoritmos específicos en gráficos. Si este último es una herramienta para ayudarlo, está bien.

Espero que el Sr. Knuth no lea esto 😉

Ah, sí, finalmente una pregunta en la que realmente puedo hacer, no un tipo de “¿Por qué Python es tan popular” o “Debería aprender Javascript”? * cruje los nudillos *. Mi amigo, los algoritmos lo son todo.

Cuando descubres cómo llegar a tu escuela, estás usando un algoritmo. Cuando discierne la forma más eficiente de hornear ese pastel, utiliza un algoritmo. En una computadora, cualquier software no trivial utiliza algoritmos para realizar el trabajo. Los algoritmos son la razón por la que puede escribir código en primer lugar, se utilizan para mantener los árboles de análisis y la memoria para el lenguaje de programación que utiliza. Esa llamada a “ordenar” que puede usar en Python en una lista es un algoritmo implementado para un uso práctico, fácil y cotidiano. Su computadora, en este momento, está utilizando un algoritmo de paginación para mantener la memoria virtual. Los algoritmos son el núcleo de la ciencia de la computación. Las estructuras de datos abstractas también lo son, ¡pero recuerda! ¡Incluso esos se construyen usando algoritmos! También se usan en conjunto con algoritmos. De hecho…

Los algoritmos son los pasos de solución para un problema particular.

En verdad, no puedo imaginar un mundo sin algoritmos (tal vez sí, pero es tan caótico que no es concebible).

Los algoritmos no son solo algoritmos informáticos y de programación para resolver problemas de datos y geolocalización.

También puede ser la receta para hacer un pastel británico o para cocinar una carne brasileña especial. También puede ser el enfoque para seguir todos los pasos de las ideas comerciales y de marketing.

Estos pasos nos dan organización y modularidad, un aspecto esencial para nosotros (o animales o computadoras) para seguirlos y, por lo tanto, para tener algoritmos tan incomparablemente significativos para nuestra vida cotidiana.

Espero que esto ayude. Si puede, por favor, dar su opinión sobre esta respuesta, déjela a continuación 🙂

Entonces, imagina que abres un restaurante. ¿A quién contratarías? Algunos monos que solo pueden cocinar espaguetis con salsa de tomate para exactamente dos personas y se pierden por completo tan pronto como pides una variante mínima, ya sea un tipo diferente de pasta, una cantidad diferente u otro detalle mínimo (sin mencionar un detalle diferente plato)…

o contrataría a alguien que haya estudiado y practicado la cocina, conozca muchas recetas y principios generales (p. ej., química, ciencias de la nutrición, tradiciones alimentarias, propagación de calor) y pueda inventar nuevas recetas, así como abordar situaciones inesperadas (como falta de ingredientes o necesidades especiales de dieta)?

Si elige este último, bueno, aprenda sobre algoritmos o vaya a una escuela de comida, dependiendo de si desea convertirse en un gran desarrollador de software, un gran chef o ambos. Ambos son realmente divertidos.

Creo que sería sesgado nombrar uno o dos algoritmos, ya que cada campo a nuestro alrededor está dominado por algoritmos. Con la creciente tecnología y la revolución digital, el uso del algoritmo ha evolucionado desde el cambio de juego de la guerra mundial hasta la resolución de problemas triviales diarios.

Uso de la transformación de Fourier, muestreo en el cuidado de la salud, Duckworth-lewis, Poisson en los deportes, comercio de caja negra en finanzas, al algoritmo de juego simple, uno no puede nombrar un algoritmo.

La evolución tecnológica en la última década ha sido exponencial y también lo ha sido el crecimiento del algoritmo.

Permítanme compartir el blog … ¡cómo los algoritmos se están apoderando de nuestra vida y cómo!

Los algoritmos se están apoderando y cómo!

Los algoritmos son definitivamente exagerados en su importancia. Recientemente lo pensé y llegué a la conclusión de que centrarse en los algoritmos puede arruinar la comprensión de un campo en particular en lugar de ayudarlo. Una analogía es como, en lugar de darle un mapa de cierta región, le doy un montón de instrucciones específicas sobre cómo llegar del punto A al punto B para un conjunto de pares de puntos (A, B) dentro de esa región.

¡Porque eso es lo que preguntan en entrevistas tecnológicas!

Y eso es todo.

A menos que estés haciendo algo interesante.

Como realmente interesante, casi alucinantemente interesante.

Pero con mayor frecuencia que generalmente crea una aplicación web o una aplicación móvil o escribe un script de utilidad o intenta abrir un agujero en el continuo espacio-tiempo.

Seriamente.

Tienes que elegir entre empleabilidad y ciencias de la computación (al menos donde vivo, tienes que hacerlo).

Está en el núcleo de la programación. Sin una buena eficiencia, sus programas no se ejecutan o toman demasiado tiempo … Los algoritmos eficientes generalmente se basan en las matemáticas.