{"id":3305,"date":"2021-03-31T14:47:38","date_gmt":"2021-03-31T17:47:38","guid":{"rendered":"https:\/\/renanmf.com\/?p=3305"},"modified":"2021-04-01T19:28:41","modified_gmt":"2021-04-01T22:28:41","slug":"bubble-sort-python","status":"publish","type":"post","link":"https:\/\/renanmf.com\/bubble-sort-python\/","title":{"rendered":"Bubble Sort in Python"},"content":{"rendered":"<p>With a worst case <a href=\"https:\/\/renanmf.com\/4-examples-algorithmic-complexity-big-o-notation\/\">complexity<\/a> of <code>O(n^2)<\/code>, the Bubble Sort is the front door of the sorting algorithms.<\/p>\n<p>The algorithm loops through the array, comparing an item on the <em>i<\/em> position with the item on the <em>i+1<\/em> position.<\/p>\n<p>In other words, the current item is compared to the one right after it.<\/p>\n<p>If the current item is greater than the next one, their positions are swapped.<\/p>\n<p>Consider the array below.<\/p>\n<p>[32, 17, 23, 5]<\/p>\n<p>Applying the Bubble Sort, the bold and italic items are the ones being compared.<\/p>\n<p>If the item on the left is greater than the item on the right, we have an Exchange, otherwise, it stays the same.<\/p>\n<p>When <em>32<\/em> reaches its position, we do the same process with <em>17<\/em> and keep going until all items go through the process.<\/p>\n<p>Notice that we no longer compare the last element after the first pass of the algorithm since it is guaranteed it will be the biggest item.<\/p>\n<p>| <em><strong>32<\/strong><\/em> | <em><strong>17<\/strong><\/em> | 23 | 5 | -&gt; Exchange<\/p>\n<p>| 17 | <em><strong>32<\/strong><\/em> | <em><strong>23<\/strong><\/em> | 5 | -&gt; Exchange<\/p>\n<p>| 17 | 23 | <em><strong>32<\/strong><\/em> | <em><strong>5<\/strong><\/em> | -&gt; Exchange<\/p>\n<p>| <em><strong>17<\/strong><\/em> | <em><strong>23<\/strong><\/em> | 5 | 32 | -&gt; No Exchange<\/p>\n<p>| 17 | <em><strong>23<\/strong><\/em> | <em><strong>5<\/strong><\/em> | 32 | -&gt; Exchange<\/p>\n<p>| <em><strong>17<\/strong><\/em> | <em><strong>5<\/strong><\/em> | 23 | 32 | -&gt; Exchange<\/p>\n<p>| 5 | 17 | 23 | 32 |<\/p>\n<p>Another way to look at it is that, at each pass, we will have the last item in place (the biggest), then the second to last (the second biggest), and so forth.<\/p>\n<p>This way we can save computational power by avoiding unnecessary comparisons on the later rounds.<\/p>\n<h2>Implementation<\/h2>\n<p>The algorithm starts by calculating the number of items to loop through.<\/p>\n<p>Since the array index starts at zero, we subtract one, this way, for 4 items, for instance, the loop goes from 0 to 3 instead of 0 to 4.<\/p>\n<p>The first loop goes from 0 until the number of items.<\/p>\n<p>The second loop will make the comparison of the <em>j<\/em> item with the <em>j+1<\/em> item.<\/p>\n<p>Notice how the second loop goes until <code>num_items-i<\/code>, meaning that, after each pass of the algorithm, we won&#8217;t compare the items already in place.<\/p>\n<p>Since <code>i<\/code> starts with 0, the second loop compares all items in the first pass.<\/p>\n<p>For <code>i<\/code> equals to 1, the second pass, the second loop goes only until <code>n-1<\/code>, so the last item is skipped.<\/p>\n<p>For <code>i<\/code> equals to 2, the third pass, the second loop goes only until <code>n-2<\/code>, so the last two items are skipped.<\/p>\n<p>This continues until <code>i<\/code> is equals to <code>num_items<\/code> and the algorithm ends.<\/p>\n<pre><code class=\"language-python\">def bubble_sort(arr):\n    num_items = len(arr)-1\n    for i in range(num_items):\n        for j in range(num_items-i):\n            if arr[j]&gt;arr[j+1]:\n                arr[j], arr[j+1] = arr[j+1], arr[j]\n\narr = [32, 17, 23, 5]\nbubble_sort(arr)\nprint(arr)<\/code><\/pre>\n<p>The output will be:<\/p>\n<pre><code>[5, 17, 23, 32]<\/code><\/pre>\n<p>To see the algorithm in action for each item in the list, insert a <code>print()<\/code> right after the second <code>for<\/code> loop.<\/p>\n<p>Then, insert a second <code>print()<\/code> after the <code>if<\/code> block to see the current state of the array at each iteration.<\/p>\n<pre><code class=\"language-python\">def bubble_sort(arr):\n    num_items = len(arr)-1\n    for i in range(num_items):\n        for j in range(num_items-i):\n            print(f&#039;{arr[j]} &lt;-&gt; {arr[j+1]}&#039;)\n            if arr[j]&gt;arr[j+1]:\n                arr[j], arr[j+1] = arr[j+1], arr[j]\n            print(arr)\n\narr = [32, 17, 23, 5]\nbubble_sort(arr)\nprint(arr)<\/code><\/pre>\n<p>The output will show the pairs being compared and exchanged until the we have the final sorted array.<\/p>\n<pre><code>32 &lt;-&gt; 17\n[17, 32, 23, 5]\n32 &lt;-&gt; 23\n[17, 23, 32, 5]\n32 &lt;-&gt; 5\n[17, 23, 5, 32]\n17 &lt;-&gt; 23\n[17, 23, 5, 32]\n23 &lt;-&gt; 5\n[17, 5, 23, 32]\n17 &lt;-&gt; 5\n[5, 17, 23, 32]\n[5, 17, 23, 32]<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>With a worst case complexity of O(n^2), the Bubble Sort is the front door of the sorting algorithms. The algorithm loops through the array, comparing an item on the i position with the item on the i+1 position. In other words, the current item is compared to the one right after it. If the current [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":3309,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[6],"class_list":["post-3305","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","tag-python"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Bubble Sort in Python<\/title>\n<meta name=\"description\" content=\"Learn how to code your own bubble sort from scratch in Python and how this famous sorting algorithm works.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/renanmf.com\/bubble-sort-python\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bubble Sort in Python\" \/>\n<meta property=\"og:description\" content=\"Learn how to code your own bubble sort from scratch in Python and how this famous sorting algorithm works.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/renanmf.com\/bubble-sort-python\/\" \/>\n<meta property=\"og:site_name\" content=\"Renan Moura - Software Engineering\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/renanmouraf\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-31T17:47:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-04-01T22:28:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/renanmf.com\/wp-content\/uploads\/2021\/03\/Verde-Neon-Futurista-Twitch-Banner-2.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2240\" \/>\n\t<meta property=\"og:image:height\" content=\"1260\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Renan Moura\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/renanmouraf\" \/>\n<meta name=\"twitter:site\" content=\"@renanmouraf\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Renan Moura\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/renanmf.com\\\/bubble-sort-python\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/renanmf.com\\\/bubble-sort-python\\\/\"},\"author\":{\"name\":\"Renan Moura\",\"@id\":\"https:\\\/\\\/renanmf.com\\\/#\\\/schema\\\/person\\\/1a6fd46256318d200c1c8a867448e5a8\"},\"headline\":\"Bubble Sort in Python\",\"datePublished\":\"2021-03-31T17:47:38+00:00\",\"dateModified\":\"2021-04-01T22:28:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/renanmf.com\\\/bubble-sort-python\\\/\"},\"wordCount\":427,\"publisher\":{\"@id\":\"https:\\\/\\\/renanmf.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/renanmf.com\\\/bubble-sort-python\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/renanmf.com\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/Verde-Neon-Futurista-Twitch-Banner-2.jpg\",\"keywords\":[\"python\"],\"articleSection\":[\"Python\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/renanmf.com\\\/bubble-sort-python\\\/\",\"url\":\"https:\\\/\\\/renanmf.com\\\/bubble-sort-python\\\/\",\"name\":\"Bubble Sort in Python\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/renanmf.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/renanmf.com\\\/bubble-sort-python\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/renanmf.com\\\/bubble-sort-python\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/renanmf.com\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/Verde-Neon-Futurista-Twitch-Banner-2.jpg\",\"datePublished\":\"2021-03-31T17:47:38+00:00\",\"dateModified\":\"2021-04-01T22:28:41+00:00\",\"description\":\"Learn how to code your own bubble sort from scratch in Python and how this famous sorting algorithm works.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/renanmf.com\\\/bubble-sort-python\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/renanmf.com\\\/bubble-sort-python\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/renanmf.com\\\/bubble-sort-python\\\/#primaryimage\",\"url\":\"https:\\\/\\\/renanmf.com\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/Verde-Neon-Futurista-Twitch-Banner-2.jpg\",\"contentUrl\":\"https:\\\/\\\/renanmf.com\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/Verde-Neon-Futurista-Twitch-Banner-2.jpg\",\"width\":2240,\"height\":1260,\"caption\":\"bubble sort in python\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/renanmf.com\\\/bubble-sort-python\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/renanmf.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bubble Sort in Python\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/renanmf.com\\\/#website\",\"url\":\"https:\\\/\\\/renanmf.com\\\/\",\"name\":\"Renan Moura - Software Engineering\",\"description\":\"Software development, machine learning\",\"publisher\":{\"@id\":\"https:\\\/\\\/renanmf.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/renanmf.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/renanmf.com\\\/#organization\",\"name\":\"Renan Moura\",\"url\":\"https:\\\/\\\/renanmf.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/renanmf.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/renanmf.com\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/me-e1583179172701.jpeg\",\"contentUrl\":\"https:\\\/\\\/renanmf.com\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/me-e1583179172701.jpeg\",\"width\":120,\"height\":120,\"caption\":\"Renan Moura\"},\"image\":{\"@id\":\"https:\\\/\\\/renanmf.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/renanmouraf\",\"https:\\\/\\\/x.com\\\/renanmouraf\",\"https:\\\/\\\/instagram.com\\\/renanmouraf\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/renanmouraf\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/renanmf.com\\\/#\\\/schema\\\/person\\\/1a6fd46256318d200c1c8a867448e5a8\",\"name\":\"Renan Moura\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/efb78bdd04aa5627f80307aed5a9b31989d901c536d1e014a29a3c3591338af8?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/efb78bdd04aa5627f80307aed5a9b31989d901c536d1e014a29a3c3591338af8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/efb78bdd04aa5627f80307aed5a9b31989d901c536d1e014a29a3c3591338af8?s=96&d=mm&r=g\",\"caption\":\"Renan Moura\"},\"description\":\"I'm a Software Engineer working in the industry for a decade now. I like to solve problems with as little code as possible. I\u2019m interested in solving all sorts of problems with technology in creative and innovative ways. From everyday shell scripts to machine learning models. I write about Software Development, Machine Learning, and Career in tech.\",\"sameAs\":[\"https:\\\/\\\/renanmf.com\\\/\",\"https:\\\/\\\/www.instagram.com\\\/renanmouraf\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/renanmouraf\\\/\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/renanmouraf\"],\"url\":\"https:\\\/\\\/renanmf.com\\\/author\\\/renanmoura\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Bubble Sort in Python","description":"Learn how to code your own bubble sort from scratch in Python and how this famous sorting algorithm works.","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:\/\/renanmf.com\/bubble-sort-python\/","og_locale":"en_US","og_type":"article","og_title":"Bubble Sort in Python","og_description":"Learn how to code your own bubble sort from scratch in Python and how this famous sorting algorithm works.","og_url":"https:\/\/renanmf.com\/bubble-sort-python\/","og_site_name":"Renan Moura - Software Engineering","article_publisher":"https:\/\/www.facebook.com\/renanmouraf","article_published_time":"2021-03-31T17:47:38+00:00","article_modified_time":"2021-04-01T22:28:41+00:00","og_image":[{"width":2240,"height":1260,"url":"https:\/\/renanmf.com\/wp-content\/uploads\/2021\/03\/Verde-Neon-Futurista-Twitch-Banner-2.jpg","type":"image\/jpeg"}],"author":"Renan Moura","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/renanmouraf","twitter_site":"@renanmouraf","twitter_misc":{"Written by":"Renan Moura","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/renanmf.com\/bubble-sort-python\/#article","isPartOf":{"@id":"https:\/\/renanmf.com\/bubble-sort-python\/"},"author":{"name":"Renan Moura","@id":"https:\/\/renanmf.com\/#\/schema\/person\/1a6fd46256318d200c1c8a867448e5a8"},"headline":"Bubble Sort in Python","datePublished":"2021-03-31T17:47:38+00:00","dateModified":"2021-04-01T22:28:41+00:00","mainEntityOfPage":{"@id":"https:\/\/renanmf.com\/bubble-sort-python\/"},"wordCount":427,"publisher":{"@id":"https:\/\/renanmf.com\/#organization"},"image":{"@id":"https:\/\/renanmf.com\/bubble-sort-python\/#primaryimage"},"thumbnailUrl":"https:\/\/renanmf.com\/wp-content\/uploads\/2021\/03\/Verde-Neon-Futurista-Twitch-Banner-2.jpg","keywords":["python"],"articleSection":["Python"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/renanmf.com\/bubble-sort-python\/","url":"https:\/\/renanmf.com\/bubble-sort-python\/","name":"Bubble Sort in Python","isPartOf":{"@id":"https:\/\/renanmf.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/renanmf.com\/bubble-sort-python\/#primaryimage"},"image":{"@id":"https:\/\/renanmf.com\/bubble-sort-python\/#primaryimage"},"thumbnailUrl":"https:\/\/renanmf.com\/wp-content\/uploads\/2021\/03\/Verde-Neon-Futurista-Twitch-Banner-2.jpg","datePublished":"2021-03-31T17:47:38+00:00","dateModified":"2021-04-01T22:28:41+00:00","description":"Learn how to code your own bubble sort from scratch in Python and how this famous sorting algorithm works.","breadcrumb":{"@id":"https:\/\/renanmf.com\/bubble-sort-python\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/renanmf.com\/bubble-sort-python\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/renanmf.com\/bubble-sort-python\/#primaryimage","url":"https:\/\/renanmf.com\/wp-content\/uploads\/2021\/03\/Verde-Neon-Futurista-Twitch-Banner-2.jpg","contentUrl":"https:\/\/renanmf.com\/wp-content\/uploads\/2021\/03\/Verde-Neon-Futurista-Twitch-Banner-2.jpg","width":2240,"height":1260,"caption":"bubble sort in python"},{"@type":"BreadcrumbList","@id":"https:\/\/renanmf.com\/bubble-sort-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/renanmf.com\/"},{"@type":"ListItem","position":2,"name":"Bubble Sort in Python"}]},{"@type":"WebSite","@id":"https:\/\/renanmf.com\/#website","url":"https:\/\/renanmf.com\/","name":"Renan Moura - Software Engineering","description":"Software development, machine learning","publisher":{"@id":"https:\/\/renanmf.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/renanmf.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/renanmf.com\/#organization","name":"Renan Moura","url":"https:\/\/renanmf.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/renanmf.com\/#\/schema\/logo\/image\/","url":"https:\/\/renanmf.com\/wp-content\/uploads\/2020\/03\/me-e1583179172701.jpeg","contentUrl":"https:\/\/renanmf.com\/wp-content\/uploads\/2020\/03\/me-e1583179172701.jpeg","width":120,"height":120,"caption":"Renan Moura"},"image":{"@id":"https:\/\/renanmf.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/renanmouraf","https:\/\/x.com\/renanmouraf","https:\/\/instagram.com\/renanmouraf","https:\/\/www.linkedin.com\/in\/renanmouraf\/"]},{"@type":"Person","@id":"https:\/\/renanmf.com\/#\/schema\/person\/1a6fd46256318d200c1c8a867448e5a8","name":"Renan Moura","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/efb78bdd04aa5627f80307aed5a9b31989d901c536d1e014a29a3c3591338af8?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/efb78bdd04aa5627f80307aed5a9b31989d901c536d1e014a29a3c3591338af8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/efb78bdd04aa5627f80307aed5a9b31989d901c536d1e014a29a3c3591338af8?s=96&d=mm&r=g","caption":"Renan Moura"},"description":"I'm a Software Engineer working in the industry for a decade now. I like to solve problems with as little code as possible. I\u2019m interested in solving all sorts of problems with technology in creative and innovative ways. From everyday shell scripts to machine learning models. I write about Software Development, Machine Learning, and Career in tech.","sameAs":["https:\/\/renanmf.com\/","https:\/\/www.instagram.com\/renanmouraf\/","https:\/\/www.linkedin.com\/in\/renanmouraf\/","https:\/\/x.com\/https:\/\/twitter.com\/renanmouraf"],"url":"https:\/\/renanmf.com\/author\/renanmoura\/"}]}},"_links":{"self":[{"href":"https:\/\/renanmf.com\/wp-json\/wp\/v2\/posts\/3305","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/renanmf.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/renanmf.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/renanmf.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/renanmf.com\/wp-json\/wp\/v2\/comments?post=3305"}],"version-history":[{"count":2,"href":"https:\/\/renanmf.com\/wp-json\/wp\/v2\/posts\/3305\/revisions"}],"predecessor-version":[{"id":3310,"href":"https:\/\/renanmf.com\/wp-json\/wp\/v2\/posts\/3305\/revisions\/3310"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/renanmf.com\/wp-json\/wp\/v2\/media\/3309"}],"wp:attachment":[{"href":"https:\/\/renanmf.com\/wp-json\/wp\/v2\/media?parent=3305"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/renanmf.com\/wp-json\/wp\/v2\/categories?post=3305"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/renanmf.com\/wp-json\/wp\/v2\/tags?post=3305"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}