¿Qué es exactamente un algoritmo? ¿Qué califica como algoritmo?

La respuesta de Drew Henry es acertada, pero una faceta interesante es que la idea históricamente fue una consecuencia de las matemáticas y las consideraciones matemáticas. Por ejemplo, “En qué condiciones puede determinar si un algoritmo completará su tarea”. Se propusieron varios modelos de computadoras en papel que se utilizaron para responder esta y otras preguntas. El sistema de etiquetas de Post, la máquina de Turing y la arquitectura de Von Neumann, que es en lo que se basan las computadoras modernas.
Una vez que se construyeron las computadoras, se determinó que incluso si el algoritmo puede detenerse teóricamente, puede no ser práctico. Esto condujo al campo de la complejidad computacional, donde podría hacer declaraciones como la siguiente: “Suponga que todos los átomos en el universo eran computadoras, y cada uno podía evaluar un movimiento de ajedrez en un nanosegundo y todos habían estado funcionando desde el principio de los tiempos entonces todavía no habrían terminado de evaluar todos los movimientos de ajedrez “. Len Adleman dijo una vez que esta idea no era obvia incluso para Gauss, ya que todos los algoritmos que propone en sus Principia Mathematica son tiempo exponencial (es decir, toma una cantidad de tiempo imposible de resolver).
Con el tiempo, la informática se volvió menos matemática y más centrada en la práctica (dado que hay más ingenieros y empresarios que matemáticos). Esto llevó a desarrollar capas de abstracción de software para facilitar la programación (lenguaje ensamblador -> Fortran / Lisp -> Lenguajes orientados a objetos). La práctica a su vez conduce a nuevas preguntas teóricas: ¿cómo es mejor ejecutar un algoritmo en paralelo? ¿Cómo es mejor estructurar los datos? ¿Cómo se puede determinar si un algoritmo (por ejemplo, la búsqueda de Google) realmente devuelve los resultados que desea?
Y aún hay mucho más después de esto …

Todavía soy estudiante pero así es como entiendo los algoritmos 🙂

Algoritmos

¿Por qué los algoritmos son tan aburridos?

Probablemente dos de las razones por las que crees que los algoritmos son aburridos son dos opciones

1) Nunca tuvo una explicación práctica sobre lo que son o

2) La persona que te presentó este tema hizo un trabajo realmente malo …

¡Pero haré todo lo posible para darle una idea clara y útil sobre lo que estas excelentes estrategias pueden ayudarnos a mejorar para encontrar soluciones a nuestros problemas!

Google: ¿Qué es un algoritmo?

“Un proceso o conjunto de reglas a seguir en los cálculos u otras operaciones de resolución de problemas, especialmente por una computadora”.

¿Dónde se pueden usar los algoritmos?

Esa es la definición dada cuando le preguntamos a Google qué es un algoritmo. Ahora demos un paso más y pregúntenos, ¿ DÓNDE puedo usar un algoritmo? Bueno, la pregunta depende de cuáles son tus problemas. Esta es una lista de ocasiones en las que puede usar un algoritmo para encontrar una solución.

  1. Encontrar un objeto ; nombre (s), número (s) o cualquier dato similar en una lista, archivo o cualquier fuente de datos grandes
  2. Agregar objetos a big data
  3. Eliminar ese mismo objeto de Big Data
  4. Ordenando datos grandes, numéricos, alfabéticos, basados ​​en fechas o de cualquier manera posible puede leer datos de información
  5. Creación de bases de datos basadas en la información obtenida. AVISO: podemos utilizar los métodos mencionados anteriormente para realizar esta tarea

¿Cuántos algoritmos hay?

No hablaré sobre cuántos algoritmos hay porque hay cientos, si no miles de ellos. Pero hablaré sobre los más populares y útiles .

Recuerda cómo dije que pueden ayudarte a encontrar, agregar, eliminar, ordenar o crear, bueno, casi todas estas tareas se encuentran en la primera, Buscar .

  1. Búsqueda lineal
  2. Búsqueda binaria
  3. Búsqueda exponencial
  4. Saltar búsqueda
  5. Tipo de selección
  6. Ordenar burbujas
  7. Ordenar fusión
  8. Tipo de inserción
  9. Ordenación rápida
  10. tipo de conteo
  11. Tipo de árbol

Casi todos estos algoritmos lo ayudan a encontrar objetos en grandes datos y a manipular estos objetos como quiera que los muestre.

Características de un algoritmo – FEO (en español significa feo jajaja)

Para definir un buen algoritmo, tiene que caer en tres categorías principales, sin decir que no hay más … pero sin duda lo esencial.

Finito

Un algoritmo tiene que llevarte a algún lado , de lo contrario, ¿cuál sería el punto si te lleva a un bucle sin fin? El propósito de un algoritmo es llegar a la solución. Tal vez esto significa que un algoritmo puede estar ejecutándose todo el tiempo, pero constantemente le da salida para que pueda trabajar. por ejemplo, Google Search Engine. Funciona 24,7,365 pero constantemente proporciona resultados para mejoras.

Eficiente

Un algoritmo tiene que ser eficiente, de lo contrario, cuál sería el propósito de un algoritmo si toma el mismo tiempo o más tiempo que tomaría cualquier otra forma no algorítmica. Tiene que cumplir el propósito en la menor cantidad de trabajo y tiempo . Piense en optimizar el tiempo y los cálculos.

Orden

Tiene que tener un conjunto claro de instrucciones . Fácil de seguir y aplicarlo en muchos escenarios como sea posible. Tiene que estar bien definido, lo que significa que tiene que seguir una estructura de pasos para que de esa manera, pueda dividir el problema en partes más pequeñas y trabajar con estas piezas de una en una. Tiene que ser super claro! Lo suficientemente claro como para que pueda traducirse al código real y usarlo en la vida real, no solo en su imaginación.

En resumen – Algoritmos AKA Life hacks

Los algoritmos son herramientas útiles que se utilizan en muchas tecnologías en el mundo de hoy.

Algunos ejemplos son

Motor de búsqueda de Google

Echo Dot (servicios de voz de Alexa)

Estos productos recopilan grandes fragmentos de datos. ¡Estos datos se analizan de muchas maneras diferentes, de modo que estas compañías puedan sacar el máximo provecho de ellos y obtener nuevos éxitos! En otras palabras, los mejores algoritmos que podrían construirse en la historia humana son los que nos entenderán por sí mismos.

A2A.

¿Qué es exactamente un algoritmo? ¿Qué califica como algoritmo?

Un algoritmo se define como un procedimiento o método paso a paso para resolver un problema. Consideremos el problema de preparar un bajji. Para preparar un bajji, seguimos los siguientes pasos dados:
1) Consigue la sartén.
2) Consigue el aceite.
a. ¿Tenemos petróleo?
yo. En caso afirmativo, póngalo en la sartén.
ii) Si no, ¿queremos comprar petróleo?
1. Si es así, entonces sal y compra.
2. Si no, podemos terminar.
3) Encienda la estufa, etc.
Lo que estamos haciendo es, para un problema dado (preparar un bajji), estamos proporcionando un procedimiento paso a paso para resolverlo.

Al definir un algoritmo, los pasos se escriben en un lenguaje humano comprensible e independiente de cualquier lenguaje de programación. Podemos implementarlo en cualquier lenguaje de programación de nuestra elección. Desde el punto de vista de la estructura de datos, a continuación se presentan algunas categorías importantes de algoritmos
1. Ordenar: Algoritmo para ordenar los elementos en un orden determinado (ya sea en orden ascendente / descendente).
2. Buscar: Algoritmo para buscar un elemento en una estructura de datos.
3. Insertar: Algoritmo para insertar un elemento en una estructura de datos.
4. Actualización: Algoritmo para actualizar un elemento existente en una estructura de datos.
5. Eliminar: Algoritmo para eliminar un elemento existente de una estructura de datos.

Características de un algoritmo
No todos los procedimientos pueden llamarse algoritmo. Un algoritmo debe tener las siguientes características
1. No ambiguo : el algoritmo debe ser claro e inequívoco. Cada uno de sus pasos y sus entradas / salidas deben ser claras y deben conducir a un solo significado.
2. Eficacia : en general, también se espera que un algoritmo sea efectivo. Esto significa que todas las operaciones que se realizarán en el algoritmo deben ser lo suficientemente básicas como para que, en principio, puedan realizarse exactamente y en un período de tiempo finito.
3. Entrada: un algoritmo debe tener cero () o más entradas bien definidas.
4. Salida: un algoritmo debe tener 1 o más salidas bien definidas y debe coincidir con la salida deseada.
5. Finitud: los algoritmos deben terminar después de un número finito de pasos.
6. Viabilidad: debe ser factible con los recursos disponibles.
7. Independiente: un algoritmo debe tener instrucciones paso a paso, que deben ser independientes de cualquier código de programación.

¿Cómo escribir un algoritmo?
No existen normas o reglas bien definidas para escribir algoritmos. Más bien, depende de problemas y recursos. Los algoritmos nunca se escriben para admitir un código de programación particular. Como sabemos, todos los lenguajes de programación comparten construcciones de código básicas como bucles (do, for, while), control de flujo (if-else), etc. Estas construcciones comunes se pueden usar para escribir un algoritmo.
Intentemos aprender a escribir algoritmos usando un ejemplo.

Problema: escriba un algoritmo para multiplicar dos números y mostrar el resultado.

paso1-INICIO
step2-declarethreeintegersa, b & c
paso3-definir valores de a & b
Paso 4: valores múltiples de a & b
step5-storeoutputofstep4toc
step6-printc
step7-STOP

Fuente: Introducción a los algoritmos.

Espero que esto te ayude.

Miel..!!

Te daré la definición que normalmente doy a los estudiantes universitarios y lo que normalmente considero una buena definición y es lo que normalmente usan los en Algoritmos. Primero tendré que definir un problema (podría ser más elaborado con él, pero lo mantendré simple) y una instancia del problema.

“Un problema es la recopilación (conjunto) de posibles instancias de problemas. Cada instancia de un problema tiene una instancia de entrada y, al resolverse, tiene una solución”.

Ahora usando esto:

“Un algoritmo es un procedimiento paso a paso inequívoco que toma una instancia de entrada (del problema dado) como entrada (s) y produce salida para la instancia del problema”.

Notarás que la definición anterior es muy flexible, no dice nada sobre la corrección o la estructura del problema, por lo que es una buena manera de definir la noción de un algoritmo. Normalmente se prueba usando una prueba de corrección que un algoritmo es correcto; un algoritmo técnicamente puede ser incorrecto; un algoritmo heurístico puede ser un ejemplo de un algoritmo que obtiene la respuesta correcta la mayor parte del tiempo (por lo que el diseñador del algoritmo generalmente intenta vincular algo sobre la solución, como la probabilidad de que produzca la salida correcta, o algo sobre la salida en sí (si es una solución factible, por ejemplo, y qué tan buenas son las respuestas con respecto a la mejor respuesta)). Algunos sustituyen “finito” por inequívoco también, aunque inequívoco cubre eso, ya que tiene que estar claramente establecido. También tenga en cuenta que el hecho de que tiene que producir resultados implica que se completa en un número finito de pasos. Esta imagen (normalmente doy en mis notas de Análisis de Algoritmos) captura esta relación bastante bien. Tenga en cuenta que la figura a continuación captura los problemas con una solución , para un problema de optimización, modificaría el cuadro “solución” para que sea un conjunto de soluciones factibles, donde algunos de ellos son una solución óptima.
Bajo esta forma de definirlo (es bastante estándar entre los que funcionan dentro de Algoritmos), puede tener algoritmos que sean correctos o incorrectos. Decimos que un algoritmo es correcto si para cada instancia del problema, el algoritmo produce como salida la solución a la instancia. En un problema de optimización, diría que el algoritmo es correcto si siempre devuelve una solución cuyo valor objetivo es el óptimo. Tenga en cuenta que algunos definirán un algoritmo para ser factible (en este contexto) si devuelve una solución factible cada vez (pero no garantiza una solución óptima), aunque a menudo es bastante fácil decir que “El algoritmo X siempre produce una solución factible “.

¡Espero que esto ayude!

Una respuesta a qué es exactamente un algoritmo tendría que ser filosófica, pero dado que la solicitud es para una simplificación, esto es lo más simple que puedo hacer:

Un algoritmo es una receta sobre cómo resolver una respuesta de un problema, utilizando pasos muy simples.

Esto es importante no solo al crear aplicaciones web, sino también en toda la programación. Cualquier computadora está hecha con una larga lista de pasos simples que puede tomar, pero no comprende qué sucede cuando se toman, por lo que un programador tiene que describir qué hacer dónde y cuándo. En este sentido, no hay realmente una diferencia entre “algoritmo” y “programa”, pero en general, el algoritmo se refiere a un método para lograr algo sin describirlo para una computadora específica, mientras que implementar el algoritmo significa comenzar desde las operaciones dadas en una programación lenguaje y escribir lo que necesita el algoritmo en términos de las operaciones que tiene.

La razón por la cual son importantes es que cuando se divide un problema en una secuencia de pasos simples, hay algunas formas que son más eficientes que otras. Sumar dos números juntos es un problema simple que todos conocen, así que usemos eso. El método del libro escolar tiene el paso simple “conocer sumas de hasta tres dígitos”, y lo usa para sumar números más grandes, yendo dígito a dígito:


El algoritmo es simplemente “comenzar en la parte posterior, agregar tres dígitos, llevar cualquier 1 extra, repetir hasta que se quede sin dígitos”. No tiene que ver cómo funciona el carry debido al sistema de números, solo siga estos sencillos pasos y obtendrá la respuesta correcta. El costo de poner un dígito más en el problema es solo una suma adicional de 3 dígitos, pero cada paso adicional le permite manejar números diez veces más grandes, por lo que obtiene mucho por un poco con este método.

Un método menos escalable sería contar: cuente cada número y marque cada paso, coloque las marcas una al lado de la otra y luego cuente el total:


Ahora, este último método es ridículamente lento y empeora mucho más rápido a medida que crecen los números. Sigue siendo un algoritmo que resuelve el problema, todo lo que necesita saber es “incrementar y marcar” y “contar marcas”.

Estos algoritmos extremadamente sencillos son mi ejemplo porque garantiza que ya los conozca desde hace mucho tiempo, y que tal vez pueda dar una idea de cómo se crean los algoritmos. Empiezas por cómo se escribe el problema cuando te lo dan, y entiendes cómo debe ser la respuesta. Luego intentas escribir lo que tiene que suceder en el medio, en pasos tan simples que incluso un idiota perfecto podría hacer que suceda siguiendo servilmente tus reglas. O que una computadora podría, es casi lo mismo.

En el contexto de su aplicación web, los algoritmos para agregar números probablemente no sean lo que tenía en mente, pero la literatura está llena de métodos cada vez más inteligentes para todo tipo de cosas útiles: clasificación, búsqueda de gráficos, enrutamiento de red, particionamiento, almacenamiento y recuperación, secuencia, teoría de números, juegos de lógica, rompecabezas, la lista sigue y sigue y sigue …

No es fácil decir por qué los algoritmos son importantes en la programación, porque en cierto sentido, están programando, y son tan diversos como lo que sea que quieras programar. Con suerte, la ilustración era buena para algo todavía; un algoritmo no es necesariamente una cosa de ciencia computacional muy complicada, es solo un nombre con clase para “enfoque estructurado de un problema”, aproximadamente.

A veces, cuanto más simple se ve, más correcto es. Por lo tanto, la explicación más simple la mayoría de las veces es correcta.

¿Por qué la definición de un algoritmo no puede ser simple, como:

Algoritmo : una secuencia de pasos para lograr algo.

Quizás esto es demasiado simple, pero sirve para el propósito, ¿no crees? Si tuviera que lavar la ropa, seguiría la siguiente secuencia de pasos:

  1. Recoge toda la ropa para lavar la ropa
  2. Usa el ascensor para bajar al lavadero
  3. Pagar por la ropa
  4. Pon tu ropa en la lavadora
  5. Espera 25 minutos
  6. Recoge ropa lavada

¿Qué es esto, sino una secuencia de pasos para lavar la ropa?

Los algoritmos no son necesariamente complicados. Ellos (pueden) describir cualquier cosa y todo como

  • Su orden de tareas: clasificación topológica
  • su viaje al lugar de su amigo: el algoritmo de Dijkstra
  • asignación de aulas a clases en las escuelas: programación de intervalos
  • Predicción de estructura secundaria de ARN utilizando técnica de programación dinámica

Dicho esto, nuestra definición de algoritmo es demasiado simple, proporcionando una sensación de ambigüedad en lo que no se ha dicho. Una mejor definición podría ser:

Algoritmo : una secuencia finita de pasos definidos con precisión para resolver un problema.

Esta es una definición nítida ya que nos permite especificar que el algoritmo debería detenerse y está bien definido.

Paso 1. Tienes dudas para entender el algoritmo.

Paso 2. Abriste tu navegador.

Paso 3. Accedió a la URL http://Quora.com , inició sesión en su cuenta de usuario.

Paso 4. Hiciste clic en el botón rojo “Hacer pregunta”

Paso 5. Hiciste tu pregunta y estabas esperando la notificación de respuesta.

¿Entiendes lo que he escrito arriba? Correcto, he escrito el procedimiento completo que seguiste para preguntar tu duda.

Enhorabuena! Solo entiendes un algoritmo.

El algoritmo es un procedimiento paso a paso diseñado para realizar una operación, y que conducirá al resultado buscado si se sigue correctamente. Los algoritmos tienen un comienzo definido y un final definido , y un número finito de pasos.

Un algoritmo es un procedimiento o fórmula para resolver un problema. La palabra deriva del nombre del matemático, Mohammed ibn-Musa al-Khwarizm i, que formó parte de la corte real en Bagdad y que vivió entre 780 y 850 .

Un programa de computadora se puede ver como un algoritmo elaborado. En matemáticas y ciencias de la computación, un algoritmo generalmente significa un pequeño procedimiento que resuelve un problema recurrente.

Un algoritmo es un método efectivo que puede expresarse dentro de una cantidad finita de espacio y tiempo y en un lenguaje formal bien definido para calcular una función. Comenzando desde un estado inicial y una entrada inicial (quizás vacía), las instrucciones describen un cálculo que, cuando se ejecuta, avanza a través de un número finito de estados sucesivos bien definidos, produciendo finalmente “salida” y terminando en un estado final final.

La mayoría de los algoritmos están destinados a implementarse como programas de computadora. Sin embargo, los algoritmos también se implementan por otros medios, como en una red neuronal biológica (por ejemplo, el cerebro humano implementando aritmética o un insecto en busca de alimento), en un circuito eléctrico o en un dispositivo mecánico.

Algoritmo es, hasta cierto punto, un término matemático, porque el algoritmo es necesariamente formal. No es solo un cruce entre el inglés y el código, porque el inglés puede ser muy vago. El algoritmo no puede. Un algoritmo es un conjunto de instrucciones, y puede expresarse en un lenguaje natural, en símbolos matemáticos, como un diagrama, como un pseudocódigo o como un código real. Realmente no importa cómo se exprese, lo que importa es que es un conjunto de instrucciones muy formal. Aquí está de Wikipedia:

En matemáticas e informática, un algoritmo es un procedimiento paso a paso para los cálculos. Los algoritmos se utilizan para el cálculo, el procesamiento de datos y el razonamiento automatizado.

Más precisamente, un algoritmo es un método efectivo expresado como una lista finita [1] de instrucciones bien definidas [2] para calcular una función. [3] Comenzando desde un estado inicial y una entrada inicial (tal vez vacía), [4] las instrucciones describen un cálculo que, cuando se ejecuta, pasará por un número finito [5] de estados sucesivos bien definidos, y finalmente producirá “salida” [6] y terminando en un estado final final. La transición de un estado al siguiente no es necesariamente determinista; algunos algoritmos, conocidos como algoritmos aleatorios, incorporan entradas aleatorias. [7]

Formalmente se puede definir como un procedimiento que sigue una secuencia de pasos para resolver (terminar) un problema (un trabajo). Aquí el problema podría ser cualquier cosa, por ejemplo, hacer un pastel de chocolate o ir a su oficina / universidad podría ser un problema bien definido y podemos encontrar un algoritmo para eso. Pero generalmente está relacionado con las matemáticas o la informática.

Una cosa a tener en cuenta es que un problema podría tener más de un algoritmo para resolverlo. Pero estamos interesados ​​principalmente en el más eficiente . Y aquí comienza toda la diversión.

Toma ejemplo. Podría haber dos personas que hacen (ir) el mismo pastel de chocolate (oficina / universidad) pero de una manera completamente diferente. Pero normalmente la gente preferiría la que tenga el mejor enfoque. Pero, de nuevo, el “mejor enfoque” o la “solución más eficiente” dependen de muchos factores.

Informalmente:

Es una forma de abordar cualquier situación / problema ‘Cómo hacerlo’.

Entonces, cuando la vida te da un problema, busca un algoritmo y pregúntate

“PUEDO HACER MEJOR” 🙂

El algoritmo no es más que un conjunto finito y definido de instrucciones para resolver un problema.

Como ejemplo de cómo abrir una botella de agua.
Paso 1: Consigue el agua embotellada.
Paso 2: agarra la parte inferior del agua embotellada con la mano izquierda o la mano derecha si eres zurdo. Manténgalo apretado.
Paso 3: agarra la tapa con la otra mano. Mantenga esto apretado también.
Paso 4: Gire la tapa en sentido antihorario, hasta que la tapa se suelte.

Entonces, nuestra declaración del problema es abrir una botella de agua y para resolverla seguimos algunas instrucciones en un orden específico. Aquí este conjunto de instrucciones es un algoritmo para abrir una botella de agua.

Algoritmo , PARA comprender esto Consideremos el problema de preparar una tortilla . para preparar tortilla, seguimos los pasos que se detallan a continuación:
1) Consigue la sartén.
2) Consigue el aceite.
a. ¿Tenemos petróleo?
* En caso afirmativo, póngalo en la sartén.
* Si no, ¿queremos comprar petróleo?
1. En caso afirmativo, sal y compra.
2. Si no, podemos terminar.
3) Encienda el gas, etc.
Lo que estamos haciendo es, para un problema dado (preparar una tortilla), dar paso a paso al productor para resolverlo. entonces podemos definir un algoritmo como-
“Un algoritmo son las instrucciones paso a paso para resolver un problema dado”.

Los algoritmos son procedimientos computacionales que para uno o algunos valores de entrada específicos definen formas de obtener una o varias salidas.
Los algoritmos son bocetos de instrucciones y deben programarse en un lenguaje adecuado que una computadora entienda como c ++, java, python, etc.
Los algoritmos son una herramienta computacional que asocia cada entrada a alguna salida específica.
Algoritmos como cualquier otra tecnología es importante. Se puede decir que el hardware, la GUI y otros factores influyen en la eficiencia de un procedimiento computacional. Pero un hecho oculto es que todas estas rutas de hardware, GUI y red dependen del algoritmo.
Es posible que uno no conozca necesariamente los algoritmos en detalle, pero su conocimiento puede llevar las empresas a grandes alturas en comparación con otros. Son un campo de estudio tan importante como otros campos de la informática.
La red permite el intercambio de información entre computadoras. Este proceso de intercambio de información requiere formas en que se debe descubrir la ruta más corta posible entre la computadora solicitante y la computadora objetivo. Esto se logra mediante algoritmos. Un enfoque muy similar funciona en las industrias de comercio electrónico donde se deben trazar los caminos más cortos entre el almacén y las ubicaciones de los clientes.
De hecho, los algoritmos están en todas partes, incluso en los lugares donde menos los esperamos.
El futuro de los préstamos bancarios está determinado por algoritmos informáticos.
Todos estos algoritmos toman entradas específicas y dan una salida.
Por ejemplo, la situación del préstamo del Banco donde la computadora toma la información sobre sus resultados académicos, carreras y rasgos de personalidad como entrada y luego, a través de procedimientos computacionales bien definidos, revisa los datos almacenados y obtiene cualquiera de los dos resultados, si usted es confiable para obtener préstamo o no
Esta es toda la esencia de los algoritmos. No hacen más que definir un procedimiento computacional para dar una salida.
Ahora los algoritmos tienen que ser eficientes, es decir, deben ser rápidos y también consumir menos tiempo, y también ocupar la mayor cantidad de memoria posible.
Puede haber varias formas de obtener la salida de las entradas, por lo tanto, muchos algoritmos, pero se eligen los algoritmos más eficientes. Los mejores algoritmos en realidad encuentran formas mejores e inteligentes de pasar por los datos y diversas operaciones. A veces, dos o más algoritmos empleados en la misma operación son mejores en diferentes situaciones. Por ejemplo, los algoritmos de ordenación … la ordenación por inserción es más eficiente para un conjunto de números pequeños, pero la ordenación por fusión es eficiente en caso de datos grandes.
Los algoritmos marcan una gran diferencia y son independientemente capaces de ganar una situación contra todas las probabilidades. Vamos a jugar este juego para una mayor comprensión. Supongamos que tenemos una computadora de baja capacidad A CON algoritmo EFICIENTE escrita en lenguaje de alto nivel y una computadora B capaz de hacer cálculos miles de veces más rápido que A pero con algoritmos DÉBIL escritos en lenguaje máquina.
B es más rápido, el ganador es A, ya que tiene buenos algoritmos y realiza la tarea mucho más rápido que B.
A veces puede que no termines obteniendo algoritmos que son completamente eficientes y uno puede obtener lo que se llama algoritmos aproximados.
Hay ciertos algoritmos np-complete que se consideran algoritmos eficientes, pero nadie ha encontrado uno hasta ahora ni están seguros de encontrar uno. Si uno encuentra al menos un algoritmo np-complete, entonces está seguro de que existe una solución para todos los demás algoritmos np. Esta es la propiedad más importante de los algoritmos np que están conectados. Todos son similares pero ninguno es igual. Un ejemplo es el algoritmo de ruta más corta que discutimos anteriormente.
El hecho es que los algoritmos son procedimientos computacionales que dan salidas a las entradas al revisar datos y realizar varias operaciones. Los mejores algoritmos son los que son eficientes [TOMA MENOS TIEMPO Y OCUPA MENOS MEMORIA]. Un algoritmo completamente eficiente no siempre ser encontrado.

  1. Un algoritmo es un conjunto finito de instrucciones que se llevarán a cabo para resolver un problema particular .
  2. Es una herramienta para resolver problemas computacionales bien especificados.
  3. Un algoritmo es una secuencia de pasos computacionales que transforman la entrada en la salida.
  4. El estudio de un algoritmo proporciona el poder de comprender el problema, así como las posibles técnicas de solución, independientemente del lenguaje de programación, el hardware de la computadora o cualquier otro aspecto de implementación .
  5. Se puede especificar un algoritmo utilizando cualquier lenguaje, normalmente los algoritmos se escriben en pseudocódigos.
  6. Los pseudocódigos transmiten la estructura del algoritmo con suficiente claridad como para que los programadores puedan implementarlo en cualquier lenguaje de su elección.

características de un algoritmo:

Entrada, el algoritmo debe tener al menos una entrada.

Salida, el algoritmo produce una salida basada en la entrada dada.

Definitivamente, cada instrucción en el algoritmo debe ser clara y sin ambigüedades.

Finitud, cada algoritmo debe terminarse después de un número finito de pasos.

Efectividad, cada instrucción debe llevarse a cabo utilizando instrucciones básicas.

Un algoritmo es un conjunto de pasos que realiza a una entrada para generar una salida deseada.

Muchas cosas en la vida cotidiana pueden verse como algoritmos. Por ejemplo, su computadora portátil se abre frente a usted y desea cerrarla. La entrada es una computadora portátil abierta y la salida deseada es una computadora portátil cerrada. El algoritmo son los pasos que debe seguir con la computadora portátil abierta para llegar a la computadora portátil cerrada . En este caso particular, debe: levantar el brazo, extenderlo, agarrar la parte superior de la pantalla y cerrar la computadora portátil.

Quizás, ¿acabas de probar lo que dije en la oración anterior? Yo hice.

Los algoritmos están en todas partes .

Algoritmo en palabras simples es un método para resolver problemas incluso si es grande o pequeño.

Cuando ve un problema por primera vez, hace un bosquejo aproximado de “cómo se puede resolver este problema paso a paso”. Ese bosquejo aproximado se llama algoritmo.

Por ejemplo, el algoritmo para hacer un té es

  • Prepare un tazón y agregue un poco de leche.
  • Luego agregue un poco de agua.
  • Luego agregue la cantidad necesaria de té en polvo.
  • Añade azucar.
  • Haz que hierva por un tiempo.

Un algoritmo es un conjunto de pasos bien definidos que resuelve un problema específico.

Por paso bien definido quiero decir que cada paso es una operación mecánica elemental (como una adición) o hay una forma bien conocida para que se divida en tales operaciones elementales.

Un ejemplo de un paso que no sea algorítmico sería una instrucción para “usar su mejor juicio”. Tal instrucción podría significar muchas cosas diferentes para muchas personas diferentes y hacer que actúen de todo tipo de formas diferentes. Como tal, no lo consideraría una parte legítima de un algoritmo.

Por problema específico me refiero a algún tipo de problema que tiene entradas y salidas bien definidas y especificaciones sobre cuáles serán exactamente esas entradas y salidas.

Por ejemplo, un problema es tomar una lista de n enteros no mayores que + 4 mil millones y no menores que -4 mil millones en cualquier orden y producir una lista de esos mismos n enteros en orden ascendente. Este problema es un buen candidato para un algoritmo porque no es ambiguo.

Un ejemplo de un problema que sería una mala coincidencia para ser resuelto algorítmicamente sería el problema de tomar una imagen y decidir qué tan artística es. Esto está mal definido porque lo artística que es una imagen es un rasgo mal definido y no se puede medir objetivamente.

Un algoritmo es una secuencia de pasos simples que, seguidos con precisión, producirán la respuesta correcta, siempre. Las computadoras requieren que esos pasos sean muy simples, esencialmente solo cargando números de la memoria, haciendo cálculos matemáticos en ellos, comparándolos. Con lenguajes de programación de nivel superior, puede pensar en conceptos de nivel superior, pero ‘bajo el capó’ en todos los aspectos se reduce a esas operaciones primitivas.

Una secuencia de pasos que da la respuesta correcta la mayor parte del tiempo no es un algoritmo, es una heurística.

Para hacer que una computadora haga algo, debe escribir un programa de computadora. Para escribir un programa de computadora, debe decirle a la computadora, paso a paso, exactamente lo que quiere que haga. Luego, la computadora “ejecuta” el programa, siguiendo cada paso mecánicamente, para lograr el objetivo final.

Cuando le está diciendo a la computadora qué hacer, también puede elegir cómo va a hacerlo. Ahí es donde entran los algoritmos informáticos. El algoritmo es la técnica básica utilizada para hacer el trabajo. Sigamos un ejemplo para ayudar a comprender el concepto de algoritmo.

En la programación de computadoras, a menudo hay muchas formas diferentes (algoritmos) para realizar cualquier tarea. Cada algoritmo tiene ventajas y desventajas en diferentes situaciones. La clasificación es un lugar donde se han realizado muchas investigaciones, porque las computadoras pasan mucho tiempo clasificando las listas. Aquí hay cinco algoritmos diferentes que se utilizan en la clasificación:

Ordenar Bin

Ordenar fusión

Ordenamiento de burbuja

Tipo de concha

Ordenación rápida

Si tiene un millón de valores enteros entre 1 y 10 y necesita ordenarlos, el ordenamiento bin es el algoritmo correcto para usar. Si tiene un millón de títulos de libros, la clasificación rápida podría ser el mejor algoritmo. Al conocer las fortalezas y debilidades de los diferentes algoritmos, elige el mejor para la tarea en cuestión.

para detalles:

Glosario informático, términos informáticos: algoritmo

El profesor me dio la mejor y más fácil definición de un algoritmo el primer día de mi primera clase de informática. Dijo que un algoritmo es un conjunto finito de instrucciones para resolver un problema en un tiempo finito. No importa lo que te lleve a una respuesta.

Una receta es un ejemplo de algoritmo.

Algunas personas piensan que lavar, enjuagar, repetir es el algoritmo más simple del mundo, pero no es finito. Si seguiste este algoritmo perfectamente, estarías atrapado en un bucle infinito.