{"id":1139,"date":"2023-09-04T22:26:50","date_gmt":"2023-09-05T01:26:50","guid":{"rendered":"https:\/\/martafagundez.com\/codevolution\/?p=1139"},"modified":"2024-04-04T20:33:19","modified_gmt":"2024-04-04T23:33:19","slug":"como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o","status":"publish","type":"post","link":"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/","title":{"rendered":"C\u00f3mo calcular la Complejidad Temporal de un Algoritmo usando la Notaci\u00f3n Big O"},"content":{"rendered":"\n<p><\/p>\n\n\n<h2 class=\"simpletoc-title\">Tabla de contenidos<\/h2>\n<style>html { scroll-behavior: smooth; }<\/style><ul class=\"simpletoc-list\">\n<li><a href=\"#3-pasos-para-calcular-la-complejidad-temporal\">3 pasos para calcular la Complejidad Temporal<\/a>\n\n\n<ul><li>\n<a href=\"#1-contar-las-operaciones-basicas-en-funcion-del-tamano-de-la-entrada\">1 &#8211; CONTAR las operaciones b\u00e1sicas en funci\u00f3n del tama\u00f1o de la entrada<\/a>\n\n<\/li>\n<li><a href=\"#2-sumar-la-cantidad-total-de-operaciones\">2 &#8211; SUMAR la cantidad total de operaciones<\/a>\n\n<\/li>\n<li><a href=\"#3-simplificar-la-expresion\">3 &#8211; SIMPLIFICAR la expresi\u00f3n<\/a>\n\n<\/li>\n<\/ul>\n<li><a href=\"#ejemplo-a\">Ejemplo A<\/a>\n\n\n<\/li>\n\n<\/li>\n\n<li><a href=\"#ejemplo-b\">Ejemplo B<\/a>\n\n\n<\/li>\n\n<\/li>\n\n<li><a href=\"#sumar-y-simplificar-durante-el-paso-1\">Sumar y simplificar durante el paso 1<\/a>\n\n<\/li>\n<li><a href=\"#ejemplo-c\">Ejemplo C<\/a>\n\n<\/li>\n<li><a href=\"#ejemplo-d\">Ejemplo D<\/a>\n<\/li><\/ul>\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<p>La <strong>complejidad temporal<\/strong> de un algoritmo es una medida te\u00f3rica de la cantidad de tiempo que un algoritmo tarda en ejecutarse.<\/p>\n\n\n\n<p>En este art\u00edculo nos centraremos en <strong>c\u00f3mo calcularla mediante la notaci\u00f3n Big O<\/strong>.<\/p>\n\n\n\n<p>Si te interesa informarte sobre <strong>qu\u00e9 es la notaci\u00f3n Big O<\/strong> y por qu\u00e9 es importante en el an\u00e1lisis de algoritmos, en <a href=\"https:\/\/martafagundez.com\/codevolution\/notacion-big-o-y-analisis-de-algoritmos\/\" target=\"_blank\" rel=\"noreferrer noopener\">este art\u00edculo del blog<\/a> lo exploramos a fondo. <\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"3-pasos-para-calcular-la-complejidad-temporal\">3 pasos para calcular la Complejidad Temporal<\/h2>\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"700\" src=\"https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/09\/3_pasos_analisis_complejidad_temporal_big_O.jpg\" loading=\"lazy\" alt=\"\" class=\"wp-image-1169\" srcset=\"https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/09\/3_pasos_analisis_complejidad_temporal_big_O.jpg 1920w, https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/09\/3_pasos_analisis_complejidad_temporal_big_O-300x109.jpg 300w, https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/09\/3_pasos_analisis_complejidad_temporal_big_O-1024x373.jpg 1024w, https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/09\/3_pasos_analisis_complejidad_temporal_big_O-768x280.jpg 768w, https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/09\/3_pasos_analisis_complejidad_temporal_big_O-1536x560.jpg 1536w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Podemos resumir el proceso a 3 simples pasos:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Contar<\/strong> las operaciones b\u00e1sicas en funci\u00f3n del tama\u00f1o de la entrada (<code>n<\/code>)<\/li>\n\n\n\n<li><strong>Sumar<\/strong> la cantidad total de operaciones<\/li>\n\n\n\n<li><strong>Simplificar<\/strong> la expresi\u00f3n<\/li>\n<\/ol>\n\n\n\n<p>Ahora analicemos cada paso con m\u00e1s detenimiento.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-group has-background is-vertical is-layout-flex wp-container-core-group-is-layout-8cf370e7 wp-block-group-is-layout-flex\" style=\"background-color:#f3f3f3\"><h3 class=\"wp-block-heading\" id=\"1-contar-las-operaciones-basicas-en-funcion-del-tamano-de-la-entrada\">1 &#8211; CONTAR las operaciones b\u00e1sicas en funci\u00f3n del tama\u00f1o de la entrada<\/h3>\n\n\n<p>Las operaciones b\u00e1sicas en un algoritmo son las tareas m\u00e1s simples que se realizan, como asignar un valor a una variable, realizar una operaci\u00f3n aritm\u00e9tica, comparar dos n\u00fameros, acceder a un elemento de un array, etc.<br><br>Cada operaci\u00f3n b\u00e1sica tiene un <strong>costo constante<\/strong>, que se considera O(1) en la notaci\u00f3n Big O. <br><br>As\u00ed que, en este paso debemos contar <strong>cu\u00e1ntas veces<\/strong> se realiza cada operaci\u00f3n, considerando si:<\/p>\n\n\n\n<ol class=\"wp-block-list\" style=\"list-style-type:lower-alpha\">\n<li>se realiza un n\u00famero constante de veces \u00f3, <\/li>\n\n\n\n<li>se repite en funci\u00f3n del tama\u00f1o de la entrada del algoritmo (n).<\/li>\n<\/ol>\n\n\n\n<p><\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"2-sumar-la-cantidad-total-de-operaciones\">2 &#8211; SUMAR la cantidad total de operaciones<\/h3>\n\n\n<p>Sumamos el n\u00famero de operaciones b\u00e1sicas, <strong>agrup\u00e1ndolas<\/strong> seg\u00fan su orden de dependencia respecto a n (lo ver\u00e1s m\u00e1s claro con los ejemplos).<\/p>\n\n\n\n<p><\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"3-simplificar-la-expresion\">3 &#8211; SIMPLIFICAR la expresi\u00f3n<\/h3>\n\n\n<p>En la notaci\u00f3n Big O, s\u00f3lo nos importa <strong>el t\u00e9rmino que crece m\u00e1s r\u00e1pido<\/strong> a medida que el tama\u00f1o de la entrada aumenta.<\/p>\n\n\n\n<p>Por lo tanto debemos<\/p>\n\n\n\n<ol class=\"wp-block-list\" style=\"list-style-type:lower-alpha\">\n<li> Reducir la expresi\u00f3n a su <strong>t\u00e9rmino de mayor orden<\/strong> (el que crece m\u00e1s r\u00e1pido)<\/li>\n\n\n\n<li>Omitir los <strong>coeficientes constantes<\/strong><\/li>\n<\/ol>\n\n\n\n<p><\/p>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>S\u00e9 que todo esto puede sonarte un tanto abstracto a\u00fan, as\u00ed que, \u00a1ve\u00e1moslo con ejemplos!<\/p>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"ejemplo-a\">Ejemplo A<\/h2>\n\n\n<p>En este primer ejemplo analizaremos detalladamente cada paso.<\/p>\n\n\n\n<p>Supongamos que tenemos una funci\u00f3n que suma todos los elementos de un array:<\/p>\n\n\n\n<pre class=\"wp-block-code has-black-color has-text-color\"><code lang=\"javascript\" class=\"language-javascript\">function sumaArray(array) {  \n   let suma = 0; \/\/ 1 operaci\u00f3n b\u00e1sica\n  \n   for (let i = 0; i &lt; array.length; i++) {\n   \/\/ 1 operaci\u00f3n b\u00e1sica para iniciar i\n   \/\/ 1 operaci\u00f3n b\u00e1sica para comparar i con array.length en cada iteraci\u00f3n del bucle\n   \/\/ 1 operaci\u00f3n b\u00e1sica para incrementar i en cada iteraci\u00f3n del bucle\n\n      suma += array[i]; \/\/ 1 operaci\u00f3n b\u00e1sica en cada iteraci\u00f3n del bucle\n   } \n\n   return suma; \/\/ 1 operaci\u00f3n b\u00e1sica\n}<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n<h4 class=\"wp-block-heading\" id=\"paso-1-contamos-las-operaciones-basicas-en-funcion-del-tamano-de-la-entrada\">Paso 1 : CONTAMOS las operaciones b\u00e1sicas en funci\u00f3n del tama\u00f1o de la entrada<\/h4>\n\n\n<p>Siendo <code>n<\/code> la <strong>longitud del array de entrada<\/strong>, contamos las siguientes operaciones b\u00e1sicas:<\/p>\n\n\n\n<p>   1 (para la asignaci\u00f3n inicial de la variable <code>sum<\/code>) <br>+ 1 (para iniciar i en el bucle <code>for<\/code>) <br>+ 1 * n = n (para comparar <code>i<\/code> con <code>array.length<\/code> en cada iteraci\u00f3n del bucle) <br>+ 1 * n = n (para incrementar <code>i<\/code> en cada iteraci\u00f3n del bucle) <br>+ 1 * n = n (para <code>suma += array[i]<\/code> en cada iteraci\u00f3n del bucle) <br>+ 1 (para <code>return suma<\/code>). <br><br>En funci\u00f3n de esto, podr\u00edamos expresar la complejidad temporal de este algoritmo as\u00ed:<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#f3f3f3\"><strong>O(1) + O(1) + O(n) + O(n) + O(n) + O(1)<\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n<h4 class=\"wp-block-heading\" id=\"paso-2-sumamos-la-cantidad-total-de-operaciones\">Paso 2: SUMAMOS la cantidad total de operaciones<\/h4>\n\n\n<p>Sumamos las operaciones b\u00e1sicas, agrup\u00e1ndolas seg\u00fan su orden de dependencia respecto a n:<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#f3f3f3\">O(1) + O(1) + O(n) + O(n) + O(n) + O(1) = <strong>O(3) + O(3n)<\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n<h4 class=\"wp-block-heading\" id=\"paso-3-simplificamos-la-expresion\">Paso 3: SIMPLIFICAMOS la expresi\u00f3n<\/h4>\n\n\n<ol style=\"background-color:#f3f3f3\" class=\"has-background wp-block-list\">\n<li><strong>Reducimos<\/strong> la expresi\u00f3n a su t\u00e9rmino de mayor orden:<br>O(3) + O(3n)  &gt;&gt; <strong>O(3n)<\/strong><\/li>\n\n\n\n<li><strong>Descartamos la parte constante<\/strong> del t\u00e9rmino:<br>O(3n)  &gt;&gt; <strong>O(n)<\/strong><\/li>\n<\/ol>\n\n\n\n<p><\/p>\n\n\n\n<p>Por lo tanto, la complejidad temporal de este algoritmo en notaci\u00f3n Big O es <strong>O(n)<\/strong>, llamada <strong>complejidad lineal<\/strong>, ya que el tiempo de ejecuci\u00f3n crece linealmente con el tama\u00f1o de la entrada.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"ejemplo-b\">Ejemplo B<\/h2>\n\n\n<p>Ahora analicemos este algoritmo para encontrar el elemento m\u00e1ximo en un arreglo, viendo cada paso pero de forma m\u00e1s resumida:<\/p>\n\n\n\n<pre class=\"wp-block-code has-black-color has-text-color\"><code lang=\"javascript\" class=\"language-javascript\">function findMax(arr) {\n  let max = -Infinity;  \/\/ O(1)\n  for (let i = 0; i &lt; arr.length; i++) {  \/\/ O(1) + (O(1)*n) + (O(1)*n)\n    if (arr[i] &gt; max) {  \/\/ O(1)*n\n      max = arr[i];  \/\/ O(1)*n\n    }\n  }\n  return max;  \/\/ O(1)\n}<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n<h4 class=\"wp-block-heading\" id=\"paso-1-contamos-las-operaciones-basicas-en-funcion-del-tamano-de-la-entrada\">Paso 1 : CONTAMOS las operaciones b\u00e1sicas en funci\u00f3n del tama\u00f1o de la entrada<\/h4>\n\n\n<p>Siendo <code>n<\/code> la <strong>longitud del array de entrada<\/strong>, contamos las siguientes operaciones b\u00e1sicas:<\/p>\n\n\n\n<p>   1 + 1 + (1*n) + (1*n) + (1*n) + (1*n) + 1<br><br>Entonces, podemos detallar el aporte de cada operaci\u00f3n b\u00e1sica a la complejidad del algoritmo de la siguiente manera:<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#f3f3f3\"><strong>O(1) + O(1) + O(n) + O(n) + O(n) <strong>+ O(n)<\/strong> + O(1)<\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n<h4 class=\"wp-block-heading\" id=\"paso-2-sumamos-la-cantidad-total-de-operaciones\">Paso 2: SUMAMOS la cantidad total de operaciones<\/h4>\n\n\n<p class=\"has-background\" style=\"background-color:#f3f3f3\">O(1) + O(1) + O(n) + O(n) + O(n) + O(n) + O(1) = <strong>O(3) + O(4n)<\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n<h4 class=\"wp-block-heading\" id=\"paso-3-simplificamos-la-expresion\">Paso 3: SIMPLIFICAMOS la expresi\u00f3n<\/h4>\n\n\n<p class=\"has-background\" style=\"background-color:#f3f3f3\">O(3) + O(4n)  = O(4n) = <strong>O(n)<\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Por lo tanto, la complejidad temporal de este algoritmo en notaci\u00f3n Big O tambi\u00e9n es <strong>lineal<\/strong> o <strong>O(n)<\/strong>.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"sumar-y-simplificar-durante-el-paso-1\">Sumar y simplificar durante el paso 1<\/h2>\n\n\n<p>Ahora que estamos m\u00e1s familiarizados con los pasos b\u00e1sicos, para hacer el proceso m\u00e1s c\u00f3modo vamos a <strong>aplicar la suma (del paso 2) y la simplificaci\u00f3n (del paso 3), durante el conteo del paso 1<\/strong>.<\/p>\n\n\n\n<p>Tomemos el ejemplo anterior (tal cual lo comentamos antes):<\/p>\n\n\n\n<pre class=\"wp-block-code has-black-color has-text-color\"><code lang=\"javascript\" class=\"language-javascript\">function findMax(arr) {\n  let max = -Infinity;  \/\/ O(1)\n  for (let i = 0; i &lt; arr.length; i++) {  \/\/ O(1) + (O(1)*n) + (O(1)*n)\n    if (arr[i] &gt; max) {  \/\/ O(1)*n\n      max = arr[i];  \/\/ O(1)*n\n    }\n  }\n  return max;  \/\/ O(1)\n}<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p>Y apliquemos la suma y la simplificaci\u00f3n para indicar <strong>la cantidad de operaciones del bucle <code>for<\/code><\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code has-black-color has-text-color\"><code lang=\"javascript\" class=\"language-javascript\">function findMax(arr) {\n  let max = -Infinity;  \/\/ O(1)\n  for (let i = 0; i &lt; arr.length; i++) {  \/\/ O(n)\n    if (arr[i] &gt; max) {  \/\/ O(1)\n      max = arr[i];  \/\/ O(1)\n    }\n  }\n  return max;  \/\/ O(1)\n}<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p>Entonces, podemos expresar el orden de operaciones requeridas de esta manera extendida:<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#f3f3f3\"><strong>O(1) + (O(n) * (O(1) + O(1))) + O(1)<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"700\" src=\"https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/09\/expresion_extendida.jpg\" loading=\"lazy\" alt=\"\" class=\"wp-image-1186\" srcset=\"https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/09\/expresion_extendida.jpg 1920w, https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/09\/expresion_extendida-300x109.jpg 300w, https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/09\/expresion_extendida-1024x373.jpg 1024w, https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/09\/expresion_extendida-768x280.jpg 768w, https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/09\/expresion_extendida-1536x560.jpg 1536w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Pero si sumamos y simplificamos la expresi\u00f3n que representa la cantidad de operaciones del bucle <code>for<\/code>, obtenemos una expresi\u00f3n m\u00e1s breve y f\u00e1cil de leer:<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#f3f3f3\">O(1) + <strong>(O(n) * (O(1) + O(1)))<\/strong> + O(1) <br>= O(1) + <strong>(O(n) * O(2))<\/strong> + O(1) <br>= O(1) + <strong>O(2n)<\/strong> + O(1)<br>= O(1) + <strong>O(n)<\/strong> + O(1)<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Entonces, aplicamos el paso 2:<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#f3f3f3\">O(1) + O(n) + O(1) = <strong>O(2) + O(n)<\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Y por \u00faltimo aplicamos el paso 3:<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#f3f3f3\">O(2) + O(n) = <strong>O(n)<\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>De esta forma llegamos a la misma conclusi\u00f3n que la vez anterior: la complejidad temporal de este algoritmo en notaci\u00f3n Big O <strong>O(n)<\/strong> (complejidad lineal).<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"ejemplo-c\">Ejemplo C<\/h2>\n\n\n<p>Ahora <strong>apliquemos todo lo que hemos discutido anteriormente<\/strong> para analizar la complejidad temporal de este algoritmo que calcula la suma de los elementos en una matriz 2D:<\/p>\n\n\n\n<pre class=\"wp-block-code has-black-color has-text-color\"><code lang=\"javascript\" class=\"language-javascript\">function sumMatrix(matrix) {\n  let sum = 0;  \/\/ O(1)\n  for (let i = 0; i &lt; matrix.length; i++) {  \/\/ O(n)\n    for (let j = 0; j &lt; matrix[i].length; j++) {  \/\/ O(m)\n      sum += matrix[i][j];  \/\/ O(1)\n    }\n  }\n  return sum;  \/\/ O(1)\n}<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Inicializaci\u00f3n de <code>sum<\/code>: O(1)<\/li>\n\n\n\n<li>Bucle externo: O(n) (donde <code>n<\/code> es el n\u00famero de filas)<\/li>\n\n\n\n<li>Bucle interno: O(m) (donde <code>m<\/code> es el n\u00famero de columnas)<\/li>\n\n\n\n<li>Suma dentro del bucle interno: O(1)<\/li>\n\n\n\n<li>Return de <code>sum<\/code>: O(1)<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>Entonces, la complejidad total del algoritmo es: <\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#f3f3f3\">O(1) + (O(n) * O(m) * O(1)) + O(1) =<strong>O(n * m)<\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>La complejidad <strong>O(n * m)<\/strong> podr\u00eda considerarse <strong>lineal<\/strong> respecto al n\u00famero total de elementos de la matriz.<\/p>\n\n\n\n<p>Aunque se describe mejor como \u00ab<strong>complejidad bidimensional<\/strong>\u00bb o simplemente <strong>O(n * m)<\/strong>, para capturar el hecho de que la complejidad depende de dos par\u00e1metros diferentes: el n\u00famero de filas (<code>n<\/code>) y el n\u00famero de columnas (<code>m<\/code>) de la matriz. <\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"ejemplo-d\">Ejemplo D<\/h2>\n\n\n<p>Para finalizar, analicemos la complejidad temporal de este algoritmo de ordenamiento de burbuja (Bubble Sort):<\/p>\n\n\n\n<pre class=\"wp-block-code has-black-color has-text-color\"><code lang=\"javascript\" class=\"language-javascript\">function bubbleSort(arr) {\n  for (let i = 0; i &lt; arr.length; i++) {  \/\/ O(n)\n    for (let j = 0; j &lt; arr.length - i - 1; j++) {  \/\/ O(n)\n      if (arr[j] &gt; arr[j + 1]) { \/\/ O(1)\n        \/\/ Intercambiar arr[j] y arr[j + 1]\n        [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];  \/\/ O(1)\n      }\n    }\n  }\n}<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Primer bucle <code>for<\/code>: O(n) (donde <code>n<\/code> es la longitud del arreglo)<\/li>\n\n\n\n<li>Segundo bucle <code>for<\/code>: O(n) (tambi\u00e9n en funci\u00f3n de la longitud del arreglo)<\/li>\n\n\n\n<li>Comparaci\u00f3n del if dentro del segundo bucle: O(1)<\/li>\n\n\n\n<li>Intercambio dentro del segundo bucle: O(1)<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>La complejidad total es:<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#f3f3f3\">O(n) * (O(n) * O(2))  =  O(n) * O(2n)  =  O(2n<sup>2<\/sup>)  =  <strong>O(n<sup>2<\/sup>)<\/strong> <\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Es decir, este algoritmo tiene una <strong>complejidad temporal cuadr\u00e1tica<\/strong> (uno de los casos de la <strong>complejidad polin\u00f3mica<\/strong>).<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Escrib\u00ed este art\u00edculo como resumen de lo que aprend\u00ed al estudiar este tema. Espero que te sea \u00fatil a ti tambi\u00e9n para entender mejor c\u00f3mo utilizar la notaci\u00f3n Big O para calcular la complejidad temporal de un algoritmo.&nbsp;\ud83e\udd13<\/p>\n\n\n\n<p>En un pr\u00f3ximo art\u00edculo me centrar\u00e9 en desarrollar ejemplos pr\u00e1cticos de <strong>c\u00f3mo calcular la complejidad espacial<\/strong> de los algoritmos mediante Big O.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>La complejidad temporal de un algoritmo es una medida te\u00f3rica de la cantidad de tiempo que un algoritmo tarda en ejecutarse. En este art\u00edculo nos&#8230;<\/p>\n","protected":false},"author":1,"featured_media":1206,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[25,19],"tags":[],"class_list":["post-1139","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-algoritmos","category-programacion"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C\u00f3mo calcular la Complejidad Temporal de un Algoritmo usando la Notaci\u00f3n Big O - CODEvolution<\/title>\n<meta name=\"description\" content=\"La complejidad temporal de un algoritmo es una medida te\u00f3rica de la cantidad de tiempo que un algoritmo tarda en ejecutarse.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C\u00f3mo calcular la Complejidad Temporal de un Algoritmo usando la Notaci\u00f3n Big O - CODEvolution\" \/>\n<meta property=\"og:description\" content=\"La complejidad temporal de un algoritmo es una medida te\u00f3rica de la cantidad de tiempo que un algoritmo tarda en ejecutarse.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/\" \/>\n<meta property=\"og:site_name\" content=\"CODEvolution\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-05T01:26:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-04T23:33:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/09\/notacion_big_o_como_calcular_complejidad_temporal.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Marta Fag\u00fandez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marta Fag\u00fandez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/\"},\"author\":{\"name\":\"Marta Fag\u00fandez\",\"@id\":\"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/3e1e66d60048c83d5dff039f53b615e1\"},\"headline\":\"C\u00f3mo calcular la Complejidad Temporal de un Algoritmo usando la Notaci\u00f3n Big O\",\"datePublished\":\"2023-09-05T01:26:50+00:00\",\"dateModified\":\"2024-04-04T23:33:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/\"},\"wordCount\":1210,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/3e1e66d60048c83d5dff039f53b615e1\"},\"image\":{\"@id\":\"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/09\/notacion_big_o_como_calcular_complejidad_temporal.jpg\",\"articleSection\":[\"Algoritmos\",\"Programaci\u00f3n\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/\",\"url\":\"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/\",\"name\":\"C\u00f3mo calcular la Complejidad Temporal de un Algoritmo usando la Notaci\u00f3n Big O - CODEvolution\",\"isPartOf\":{\"@id\":\"https:\/\/martafagundez.com\/codevolution\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/09\/notacion_big_o_como_calcular_complejidad_temporal.jpg\",\"datePublished\":\"2023-09-05T01:26:50+00:00\",\"dateModified\":\"2024-04-04T23:33:19+00:00\",\"description\":\"La complejidad temporal de un algoritmo es una medida te\u00f3rica de la cantidad de tiempo que un algoritmo tarda en ejecutarse.\",\"breadcrumb\":{\"@id\":\"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/#primaryimage\",\"url\":\"https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/09\/notacion_big_o_como_calcular_complejidad_temporal.jpg\",\"contentUrl\":\"https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/09\/notacion_big_o_como_calcular_complejidad_temporal.jpg\",\"width\":1280,\"height\":720},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/martafagundez.com\/codevolution\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C\u00f3mo calcular la Complejidad Temporal de un Algoritmo usando la Notaci\u00f3n Big O\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/martafagundez.com\/codevolution\/#website\",\"url\":\"https:\/\/martafagundez.com\/codevolution\/\",\"name\":\"CODEvolution\",\"description\":\"Blog de Marta Fag\u00fandez\",\"publisher\":{\"@id\":\"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/3e1e66d60048c83d5dff039f53b615e1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/martafagundez.com\/codevolution\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/3e1e66d60048c83d5dff039f53b615e1\",\"name\":\"Marta Fag\u00fandez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/08\/marta_fagundez_developer_avatar1.png\",\"contentUrl\":\"https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/08\/marta_fagundez_developer_avatar1.png\",\"width\":603,\"height\":603,\"caption\":\"Marta Fag\u00fandez\"},\"logo\":{\"@id\":\"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/image\/\"},\"description\":\"Aqu\u00ed comparto algunos de mis aprendizajes como desarrolladora web. Si alguno de mis art\u00edculos te ha resultado \u00fatil, me alegrar\u00eda saberlo ;)\",\"sameAs\":[\"https:\/\/martafagundez.com\",\"https:\/\/www.linkedin.com\/in\/martafagundezrodriguez\",\"https:\/\/www.youtube.com\/@martafagundez\"],\"url\":\"https:\/\/martafagundez.com\/codevolution\/author\/marta\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C\u00f3mo calcular la Complejidad Temporal de un Algoritmo usando la Notaci\u00f3n Big O - CODEvolution","description":"La complejidad temporal de un algoritmo es una medida te\u00f3rica de la cantidad de tiempo que un algoritmo tarda en ejecutarse.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/","og_locale":"es_ES","og_type":"article","og_title":"C\u00f3mo calcular la Complejidad Temporal de un Algoritmo usando la Notaci\u00f3n Big O - CODEvolution","og_description":"La complejidad temporal de un algoritmo es una medida te\u00f3rica de la cantidad de tiempo que un algoritmo tarda en ejecutarse.","og_url":"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/","og_site_name":"CODEvolution","article_published_time":"2023-09-05T01:26:50+00:00","article_modified_time":"2024-04-04T23:33:19+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/09\/notacion_big_o_como_calcular_complejidad_temporal.jpg","type":"image\/jpeg"}],"author":"Marta Fag\u00fandez","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Marta Fag\u00fandez","Tiempo de lectura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/#article","isPartOf":{"@id":"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/"},"author":{"name":"Marta Fag\u00fandez","@id":"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/3e1e66d60048c83d5dff039f53b615e1"},"headline":"C\u00f3mo calcular la Complejidad Temporal de un Algoritmo usando la Notaci\u00f3n Big O","datePublished":"2023-09-05T01:26:50+00:00","dateModified":"2024-04-04T23:33:19+00:00","mainEntityOfPage":{"@id":"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/"},"wordCount":1210,"commentCount":0,"publisher":{"@id":"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/3e1e66d60048c83d5dff039f53b615e1"},"image":{"@id":"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/#primaryimage"},"thumbnailUrl":"https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/09\/notacion_big_o_como_calcular_complejidad_temporal.jpg","articleSection":["Algoritmos","Programaci\u00f3n"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/","url":"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/","name":"C\u00f3mo calcular la Complejidad Temporal de un Algoritmo usando la Notaci\u00f3n Big O - CODEvolution","isPartOf":{"@id":"https:\/\/martafagundez.com\/codevolution\/#website"},"primaryImageOfPage":{"@id":"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/#primaryimage"},"image":{"@id":"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/#primaryimage"},"thumbnailUrl":"https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/09\/notacion_big_o_como_calcular_complejidad_temporal.jpg","datePublished":"2023-09-05T01:26:50+00:00","dateModified":"2024-04-04T23:33:19+00:00","description":"La complejidad temporal de un algoritmo es una medida te\u00f3rica de la cantidad de tiempo que un algoritmo tarda en ejecutarse.","breadcrumb":{"@id":"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/#primaryimage","url":"https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/09\/notacion_big_o_como_calcular_complejidad_temporal.jpg","contentUrl":"https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/09\/notacion_big_o_como_calcular_complejidad_temporal.jpg","width":1280,"height":720},{"@type":"BreadcrumbList","@id":"https:\/\/martafagundez.com\/codevolution\/como-calcular-la-complejidad-temporal-de-un-algoritmo-usando-la-notacion-big-o\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/martafagundez.com\/codevolution\/"},{"@type":"ListItem","position":2,"name":"C\u00f3mo calcular la Complejidad Temporal de un Algoritmo usando la Notaci\u00f3n Big O"}]},{"@type":"WebSite","@id":"https:\/\/martafagundez.com\/codevolution\/#website","url":"https:\/\/martafagundez.com\/codevolution\/","name":"CODEvolution","description":"Blog de Marta Fag\u00fandez","publisher":{"@id":"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/3e1e66d60048c83d5dff039f53b615e1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/martafagundez.com\/codevolution\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":["Person","Organization"],"@id":"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/3e1e66d60048c83d5dff039f53b615e1","name":"Marta Fag\u00fandez","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/image\/","url":"https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/08\/marta_fagundez_developer_avatar1.png","contentUrl":"https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/08\/marta_fagundez_developer_avatar1.png","width":603,"height":603,"caption":"Marta Fag\u00fandez"},"logo":{"@id":"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/image\/"},"description":"Aqu\u00ed comparto algunos de mis aprendizajes como desarrolladora web. Si alguno de mis art\u00edculos te ha resultado \u00fatil, me alegrar\u00eda saberlo ;)","sameAs":["https:\/\/martafagundez.com","https:\/\/www.linkedin.com\/in\/martafagundezrodriguez","https:\/\/www.youtube.com\/@martafagundez"],"url":"https:\/\/martafagundez.com\/codevolution\/author\/marta\/"}]}},"jetpack_featured_media_url":"https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/09\/notacion_big_o_como_calcular_complejidad_temporal.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/martafagundez.com\/codevolution\/wp-json\/wp\/v2\/posts\/1139","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/martafagundez.com\/codevolution\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/martafagundez.com\/codevolution\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/martafagundez.com\/codevolution\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/martafagundez.com\/codevolution\/wp-json\/wp\/v2\/comments?post=1139"}],"version-history":[{"count":60,"href":"https:\/\/martafagundez.com\/codevolution\/wp-json\/wp\/v2\/posts\/1139\/revisions"}],"predecessor-version":[{"id":1297,"href":"https:\/\/martafagundez.com\/codevolution\/wp-json\/wp\/v2\/posts\/1139\/revisions\/1297"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/martafagundez.com\/codevolution\/wp-json\/wp\/v2\/media\/1206"}],"wp:attachment":[{"href":"https:\/\/martafagundez.com\/codevolution\/wp-json\/wp\/v2\/media?parent=1139"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/martafagundez.com\/codevolution\/wp-json\/wp\/v2\/categories?post=1139"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/martafagundez.com\/codevolution\/wp-json\/wp\/v2\/tags?post=1139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}