{"id":29048,"date":"2021-08-14T13:25:38","date_gmt":"2021-08-14T13:25:38","guid":{"rendered":"https:\/\/www.conectasoftware.com\/glossary\/algoritmo\/"},"modified":"2023-07-02T12:22:57","modified_gmt":"2023-07-02T12:22:57","slug":"algoritmo","status":"publish","type":"glossary","link":"https:\/\/www.conectasoftware.com\/magazine\/glosario\/algoritmo\/","title":{"rendered":"Algoritmo<span class=\"dashicons \" data-icon=\"\" style=\"color:#000;display:inline;vertical-align:baseline;\"><\/span>"},"content":{"rendered":"<h2><b>Algoritmo, \u00bfqu\u00e9 es?<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Algoritmo es un t\u00e9rmino que hace referencia a una <\/span><b>serie de pasos que resuelven un problema<\/b><span style=\"font-weight: 400;\">, siempre cumpliendo las premisas de ser <\/span><b>preciso<\/b><span style=\"font-weight: 400;\">, <\/span><b>finito <\/b><span style=\"font-weight: 400;\">y <\/span><b>determinista<\/b><span style=\"font-weight: 400;\">.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Por ejemplo, una receta de cocina en la que los pasos est\u00e1n contados (finito), se a\u00f1aden unas cantidades exactas de ingredientes en un orden determinado (preciso) y, a trav\u00e9s del cocinado de dichos ingredientes se obtiene un resultado (determinista), la receta se considera un algoritmo.\u00a0<\/span><\/p>\n<h2><b>Tipos de representaciones de un algoritmo<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Las principales maneras de representaci\u00f3n de un algoritmo son a trav\u00e9s de <\/span><b>c\u00f3digo fuente<\/b><span style=\"font-weight: 400;\"> haciendo uso de un <\/span><b>lenguaje de programaci\u00f3n<\/b><span style=\"font-weight: 400;\">, a trav\u00e9s de <\/span><b>pseudoc\u00f3digo<\/b><span style=\"font-weight: 400;\">, a trav\u00e9s de un <\/span><b>diagrama de flujo<\/b><span style=\"font-weight: 400;\"> o a trav\u00e9s de un <\/span><b>sistema formal<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<h3><b>C\u00f3digo fuente<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Un c\u00f3digo fuente se define como una serie de instrucciones secuenciales, escritas en un lenguaje de programaci\u00f3n determinado que, a trav\u00e9s de un compilador o int\u00e9rprete, \u00e9ste puede ser ejecutado en una m\u00e1quina.\u00a0\u00a0<\/span><\/p>\n<h3><b>Pseudoc\u00f3digo<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">El pseudoc\u00f3digo de un programa inform\u00e1tico representa la descripci\u00f3n del algoritmo en un lenguaje de alto nivel, sin que \u00e9ste sea capaz de ser procesado por una m\u00e1quina. Se considera uno de los pasos previos a la escritura del c\u00f3digo fuente.<\/span><\/p>\n<h3><b>Diagrama de flujo<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Un diagrama de flujo representa de manera gr\u00e1fica un algoritmo, teniendo en cuenta todos los posibles resultados y condiciones dentro de dicho gr\u00e1fico. De manera general, se utiliza el lenguaje UML, el cual, es un lenguaje a trav\u00e9s del que se representa el flujo de trabajo y que hace uso de una serie de s\u00edmbolos de manera universal.<\/span><\/p>\n<h3><b>Sistema formal<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Un sistema formal es una manera de representar un problema haciendo uso de un sistema abstracto, a trav\u00e9s de reglas de inferencia, axiomas, y un lenguaje formal, y que tiene por objetivo demostrar teoremas.<\/span><\/p>\n<blockquote><p><span style=\"font-weight: 400;\">Todo algoritmo es <a href=\"https:\/\/es.wikipedia.org\/wiki\/Alan_Turing\" target=\"_blank\" rel=\"noopener\">Turing<\/a> computable<\/span><\/p><\/blockquote>\n<h2><b>Complejidad computacional de un algoritmo<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Se define la complejidad computacional como la cantidad de recursos que debe utilizar un algoritmo para encontrar la soluci\u00f3n al problema que pretende resolver. La complejidad computacional se representa a trav\u00e9s de la notaci\u00f3n de O grande junto con diferentes funciones matem\u00e1ticas.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><b>O(1). Funci\u00f3n constante<\/b><span style=\"font-weight: 400;\">. Un ejemplo de tipo de algoritmo que represente esta notaci\u00f3n es una funciones hash, quien pretende obtener como resultado un elemento.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>O (log n). Funci\u00f3n logar\u00edtmica<\/b><span style=\"font-weight: 400;\">. Un ejemplo de algoritmo que representa esta notaci\u00f3n es un \u00e1rbol de b\u00fasqueda balanceado.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>O (n). Funci\u00f3n lineal<\/b><span style=\"font-weight: 400;\">. Un ejemplo de algoritmo que representa esta notaci\u00f3n es una lista.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>O (n log n). Funci\u00f3n loglineal.<\/b><span style=\"font-weight: 400;\"> Un ejemplo de algoritmo que representa esta notaci\u00f3n es el algoritmo de ordenaci\u00f3n r\u00e1pida merge sort.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>O (n^2). Funci\u00f3n cuadr\u00e1tica<\/b><span style=\"font-weight: 400;\">. Un ejemplo de algoritmo que representa esta notaci\u00f3n es el algoritmo de ordenaci\u00f3n r\u00e1pida bubble sort.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>O (c^n), c &gt; 1<\/b><span style=\"font-weight: 400;\">. Funci\u00f3n exponencial. Un algoritmo que representa esta notaci\u00f3n es la fuerza bruta.\u00a0<\/span><\/li>\n<\/ul>\n<h2><img loading=\"lazy\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-17425\" src=\"https:\/\/www.conectasoftware.com\/magazine\/wp-content\/uploads\/2020\/05\/algoritmos-google-posicionamiento-seo.png\" alt=\"algoritmos google posicionamiento seo\" width=\"2160\" height=\"1440\" \/><\/h2>\n<h2>Los algoritmos de Google<\/h2>\n<p>Google introduce cambios en sus algoritmos de posicionamiento pr\u00e1cticamente a diario. Algunos son peque\u00f1os ajustes, mientras que otros sacuden seriamente los SERPs (Search Engine Ranking Position).<\/p>\n<p>Los algoritmos de Google son un sistema complejo que se utiliza con el objetivo de recuperar datos de su \u00edndice de b\u00fasqueda y ofrecer al instante los mejores resultados posibles para la consulta de un usuario.<\/p>\n<p>El motor de b\u00fasqueda de Google utiliza una combinaci\u00f3n de algoritmos y numerosas se\u00f1ales de posicionamiento para mostrar p\u00e1ginas web clasificadas por relevancia en sus p\u00e1ginas de resultados del motor de b\u00fasqueda. Esto se conoce como\u00a0<a class=\"glossaryLink cmtt_SEO\" href=\"https:\/\/www.conectasoftware.com\/magazine\/glosario\/serp\/\" data-cmtooltip=\"81e610d726e8a357f4e71c45d3b9a8f0\" aria-describedby=\"tt\">SERP<\/a>, o Search Engine Ranking Pages.<\/p>\n<p>Sigue leyendo sobre los <a href=\"https:\/\/www.conectasoftware.com\/magazine\/marketing-digital\/algoritmos-de-google-los-cambios-mas-importantes\/\">algoritmos de Google<\/a> y <a href=\"https:\/\/www.conectasoftware.com\/magazine\/marketing-digital\/algoritmo-google-bert-que-es\/\">Google BERT<\/a><\/p>\n<h2><b>Algoritmos m\u00e1s utilizados en machine learning<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">A continuaci\u00f3n, se presenta un listado de los algoritmos m\u00e1s utilizados dentro del \u00e1rea del <a href=\"https:\/\/www.conectasoftware.com\/magazine\/glosario\/ml-machine-learning\/\">machine learning<\/a>:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">\u00c1rboles de decisi\u00f3n.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Algoritmos bayesianos.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Algoritmos de regresi\u00f3n.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Algoritmos de redes neuronales.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Algoritmos de reducci\u00f3n de dimensi\u00f3n.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Algoritmos de deep learning. <\/span><\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.conectasoftware.com\/magazine\/glosario\/\"><img loading=\"lazy\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-17260\" src=\"https:\/\/www.conectasoftware.com\/magazine\/wp-content\/uploads\/2020\/04\/glosario-transformacion-digital.png\" alt=\"\" width=\"1134\" height=\"628\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Algoritmo, \u00bfqu\u00e9 es? Algoritmo es un t\u00e9rmino que hace referencia a una serie de pasos que resuelven un problema, siempre cumpliendo las premisas de ser preciso, finito y determinista.\u00a0 Por ejemplo, una receta de cocina en la que los pasos est\u00e1n contados (finito), se a\u00f1aden unas cantidades exactas de ingredientes en un orden determinado (preciso) [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":18122,"menu_order":0,"template":"","meta":{"content-type":"","footnotes":""},"glossary-categories":[95,94],"glossary-tags":[],"glossary-languages":[],"class_list":{"0":"post-29048","1":"glossary","2":"type-glossary","3":"status-publish","4":"has-post-thumbnail","6":"glossary-categories-diccionario-de-business-intelligence","7":"glossary-categories-seo"},"_links":{"self":[{"href":"https:\/\/www.conectasoftware.com\/magazine\/wp-json\/wp\/v2\/glossary\/29048","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.conectasoftware.com\/magazine\/wp-json\/wp\/v2\/glossary"}],"about":[{"href":"https:\/\/www.conectasoftware.com\/magazine\/wp-json\/wp\/v2\/types\/glossary"}],"author":[{"embeddable":true,"href":"https:\/\/www.conectasoftware.com\/magazine\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":3,"href":"https:\/\/www.conectasoftware.com\/magazine\/wp-json\/wp\/v2\/glossary\/29048\/revisions"}],"predecessor-version":[{"id":37576,"href":"https:\/\/www.conectasoftware.com\/magazine\/wp-json\/wp\/v2\/glossary\/29048\/revisions\/37576"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.conectasoftware.com\/magazine\/wp-json\/wp\/v2\/media\/18122"}],"wp:attachment":[{"href":"https:\/\/www.conectasoftware.com\/magazine\/wp-json\/wp\/v2\/media?parent=29048"}],"wp:term":[{"taxonomy":"glossary-categories","embeddable":true,"href":"https:\/\/www.conectasoftware.com\/magazine\/wp-json\/wp\/v2\/glossary-categories?post=29048"},{"taxonomy":"glossary-tags","embeddable":true,"href":"https:\/\/www.conectasoftware.com\/magazine\/wp-json\/wp\/v2\/glossary-tags?post=29048"},{"taxonomy":"glossary-languages","embeddable":true,"href":"https:\/\/www.conectasoftware.com\/magazine\/wp-json\/wp\/v2\/glossary-languages?post=29048"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}