{"id":9764,"date":"2025-08-29T15:12:41","date_gmt":"2025-08-29T09:42:41","guid":{"rendered":"https:\/\/namastedev.com\/blog\/?p=9764"},"modified":"2026-02-02T19:44:07","modified_gmt":"2026-02-02T14:14:07","slug":"bubble-sort_","status":"publish","type":"post","link":"https:\/\/namastedev.com\/blog\/bubble-sort_\/","title":{"rendered":"Bubble Sort"},"content":{"rendered":"\n<!-- Sum of all numbers in array using Recursion 1 -->\n<link\n    href=\"https:\/\/cdn.jsdelivr.net\/npm\/prismjs@1.29.0\/themes\/prism-tomorrow.min.css\"\n    rel=\"stylesheet\"\n\/>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/prismjs@1.29.0\/prism.min.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/prismjs@1.29.0\/plugins\/autoloader\/prism-autoloader.min.js\"><\/script>\n\n<style>\n.wp_blog_theme {\n  --primary: #E58C32;\n  --secondary: #030302;\n  --light-bg: #fef9f4;\n  --text-dark: #2d2d2d;\n  --tab-radius: 12px;\n  --shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n  --code-bg: #001f3f;\n  --code-text: #d4f1ff;\n}\n\n.wp_blog_container {\n  font-family: 'Segoe UI', sans-serif;\n  background: var(--light-bg);\n  margin: 0;\n  padding: 0;\n  color: var(--text-dark);\n}\n\n\/* Heading *\/\n.wp_blog_main-heading {\n  text-align: center;\n  font-size: 2.4rem;\n  color: var(--primary);\n  margin-top: 2.5rem;\n  font-weight: bold;\n}\n\n\/* Explanation Card *\/\n.wp_blog_explanation,\n.wp_blog_code-tabs-container {\n  max-width: 940px;\n  margin: 2rem auto;\n  padding: 2rem;\n  background: white;\n  border-radius: var(--tab-radius);\n  box-shadow: var(--shadow);\n}\n\n\/* Text and Visuals *\/\n.wp_blog_explanation h2 {\n  font-size: 1.4rem;\n  color: var(--primary);\n  margin-bottom: 0.5rem;\n}\n\n.wp_blog_explanation p,\n.wp_blog_explanation li {\n  font-size: 1.05rem;\n  line-height: 1.7;\n  margin: 0.5rem 0;\n}\n\n.wp_blog_explanation code {\n  background: #fef9f4;   \/* light bg instead of dark blue *\/\n  color: #E58C32;        \/* brand orange *\/\n  padding: 3px 6px;\n  border-radius: 4px;\n  font-family: 'Courier New', monospace;\n  font-weight: 600;      \/* optional, makes it pop *\/\n}\n\n.wp_blog_explanation img {\n  max-width: 100%;\n  border-radius: var(--tab-radius);\n  margin-top: 1rem;\n  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);\n}\n\n\/* Tab Buttons *\/\n.wp_blog_code-tabs-header {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 0.5rem;\n  margin-bottom: 1rem;\n}\n\n.wp_blog_code-tab-button {\n  padding: 0.6rem 1.2rem;\n  border: 1px solid var(--primary);\n  background: white;\n  color: var(--primary);\n  border-radius: 50px;\n  font-weight: 600;\n  cursor: pointer;\n  transition: all 0.3s ease;\n}\n\n.wp_blog_code-tab-button:hover {\n  background: var(--secondary);\n}\n\n.wp_blog_code-tab-button.active {\n  background: var(--primary);\n  color: white;\n}\n\n\/* Code Content *\/\n.wp_blog_code-tab-content {\n  display: none;\n  background: var(--code-bg);\n  border-radius: var(--tab-radius);\n}\n\n.wp_blog_code-tab-content.active {\n  display: block;\n}\n\n.wp_blog_code-tab-content pre {\n  margin: 0;\n  padding: 1.5rem;\n  font-size: 1rem;\n  overflow-x: auto;\n  background: var(--code-bg);\n  border-radius: var(--tab-radius);\n  color: var(--code-text);\n}\n\n\/* Dark mode variables *\/\n.wp_blog_theme.dark-mode {\n  --light-bg: #121212;\n  --text-dark: #f5f5f5;\n  --shadow: 0 4px 12px rgba(255, 255, 255, 0.08);\n  --code-bg: #1e1e1e;\n  --code-text: #c5f0ff;\n}\n\n.wp_blog_theme.dark-mode .wp_blog_explanation {\n  background: #1e1e1e;\n}\n\n\/* Dark mode code highlight *\/\n.wp_blog_theme.dark-mode .wp_blog_explanation code {\n  background: #333;\n  color: #ffd27f;\n}\n\n.wp_blog_theme {\n  position: relative; \/* makes it the reference for absolute children *\/\n}\n\n.wp_blog_toggle-btn {\n  position: absolute;\n  top: 1rem;\n  right: 1rem;\n  z-index: 9999;\n  padding: 0.5rem 0.8rem;\n  border-radius: 10%;\n  background: var(--primary);\n  color: white;\n  font-weight: bold;\n  cursor: pointer;\n  border: none;\n  box-shadow: var(--shadow);\n  transition: background 0.3s, transform 0.2s;\n}\n\n.wp_blog_toggle-btn:hover {\n  background: #cc772e;\n}\n\n.wp_blog_theme.dark-mode .wp_blog_code-tabs-container {\n  background: #1e1e1e;\n}\n<\/style>\n\n<div class=\"wp_blog_container wp_blog_theme\">\n        <button id=\"blogNotesThemeToggle\" class=\"wp_blog_toggle-btn\">\ud83c\udf19<\/button>\n\n<h1 class=\"wp_blog_main-heading\"><\/h1>\n\n<div class=\"wp_blog_explanation\">\n\n    <h2>Bubble Sort<\/h2>\n    <ul>\n        <li><strong>Bubble Sort<\/strong> is a simple <code>sorting algorithm<\/code> that <strong>repeatedly steps through the list, compares adjacent elements<\/strong>, and swaps them if they are in the wrong order.<\/li>\n        <li>This process is repeated until <strong>the array is sorted<\/strong>.<\/li>\n        <li> After <strong>each pass<\/strong>, the largest unsorted element <code>\u201cbubbles up\u201d to its correct position<\/code> at the end of the array. It\u2019s called \u201cBubble Sort\u201d <\/li>\n        <li>As <code>smaller elements<\/code> slowly \u201cbubble\u201d to the top of the list.<\/li>\n    <\/ul>\n    <!-- <h2>Example 1:<\/h2>\n    <p><strong>Input:<\/strong> [1, 3, 5, 7, 9]<\/p>\n    <p><strong>Output:<\/strong> 7<\/p> -->\n\n    <!-- <h2>Example 2:<\/h2>\n    <p><strong>Input:<\/strong> arr = [6, 8, 0, 3]<\/p>\n    <p><strong>Output:<\/strong> -1<\/p>\n    <p><strong>Explanation: <\/strong>5 is not present in the array<\/p>\n -->\n\n    <h2>Approach:<\/h2>\n    <ul>\n        <li><strong>Iterate<\/strong> through the <code>array multiple times<\/code>.<\/li>\n        <li>In <code>each pass<\/code>, compare <strong>adjacent elements<\/strong>.<\/li>\n        <li>If the <code>current element<\/code> is <strong>greater than the next one<\/strong>, swap them.<\/li>\n        <li><strong>After each pass<\/strong>, the <code>largest unsorted element<\/code> bubbles up to its correct position at the <code>end<\/code>.<\/li>\n        <li>Use a <code>boolean flag<\/code> (isSwapped) to <strong>track whether any swapping happened<\/strong>.<\/li>\n        <li>If <code>no swaps<\/code> occurred in a full pass, the <code>array is already sorted<\/code> \u2192 early exit (optimization).<\/li>\n        <li>Repeat this process for <code>n - 1<\/code> passes (where n is the array length), or until no <strong>swaps are needed<\/strong>.<\/li>\n    <\/ul>\n\n    <h2>Time &#038; Space Complexity:<\/h2>\n    <p><strong>Time Complexity: O(n) (Best Case)<\/strong> when array is already sorted (optimized with isSwapped).<\/p>\n    <p><strong>Worst Case: O(n<sup>2<\/sup>)<\/strong> When array is in reverse order.<\/p>\n    <p><strong>Space Complexity: O(1)<\/strong>  In-place sorting, no extra space used.<\/p>\n\n\n    <h2>Dry Run<\/h2>\n<div style=\"background: var(--light-bg); border-left: 4px solid var(--primary); padding: 1rem; border-radius: var(--tab-radius); margin: 1rem 0; color: var(--text-dark);\"> \n  <p><strong>Input:<\/strong> <code>arr = [4, 5, 1, 3, 9]<\/code><\/p> \n  \n  <pre style=\"white-space: pre-wrap; background: var(--code-bg); padding: 1rem; border-radius: 8px; overflow-x: auto; color: var(--code-text);\">\nPass 1 (i = 0):\n  j = 0 \u2192 [4, 5, 1, 3, 9] \u2192 4 < 5 \u2192 no swap\n  j = 1 \u2192 [4, 5, 1, 3, 9] \u2192 5 > 1 \u2192 swap \u2192 [4, 1, 5, 3, 9]\n  j = 2 \u2192 [4, 1, 5, 3, 9] \u2192 5 > 3 \u2192 swap \u2192 [4, 1, 3, 5, 9]\n  j = 3 \u2192 [4, 1, 3, 5, 9] \u2192 5 < 9 \u2192 no swap\n\nPass 2 (i = 1):\n  j = 0 \u2192 [4, 1, 3, 5, 9] \u2192 4 > 1 \u2192 swap \u2192 [1, 4, 3, 5, 9]\n  j = 1 \u2192 [1, 4, 3, 5, 9] \u2192 4 > 3 \u2192 swap \u2192 [1, 3, 4, 5, 9]\n  j = 2 \u2192 [1, 3, 4, 5, 9] \u2192 4 < 5 \u2192 no swap\n\nPass 3 (i = 2):\n  j = 0 \u2192 [1, 3, 4, 5, 9] \u2192 1 < 3 \u2192 no swap\n  j = 1 \u2192 [1, 3, 4, 5, 9] \u2192 3 < 4 \u2192 no swap\n  \u2192 No swaps \u2192 break\n  <\/pre> \n  \n  <p><strong>Output:<\/strong> <code>[1, 3, 4, 5, 9]<\/code><\/p> \n<\/div>\n<\/div>\n\n\n<div class=\"wp_blog_code-tabs-container\">\n    <div class=\"wp_blog_code-tabs-header\">\n        <button class=\"wp_blog_code-tab-button active\" data-lang=\"js\">\n            JavaScript\n        <\/button>\n        <button class=\"wp_blog_code-tab-button\" data-lang=\"py\">Python<\/button>\n        <button class=\"wp_blog_code-tab-button\" data-lang=\"java\">Java<\/button>\n        <button class=\"wp_blog_code-tab-button\" data-lang=\"cpp\">C++<\/button>\n        <button class=\"wp_blog_code-tab-button\" data-lang=\"c\">C<\/button>\n        <button class=\"wp_blog_code-tab-button\" data-lang=\"cs\">C#<\/button>\n    <\/div>\n\n    <div class=\"wp_blog_code-tab-content active\" data-lang=\"js\">\n        <pre><code class=\"language-javascript\">\n let arr = [4,5,1,3,9]\n  \n  function bubbleSort(arr){\n    let n = arr.length;\n    for(let i = 0; i < n-1; i++) {\n      let isSwapped = false;\n      for(let j = 0; j < n-1-i; j++) {\n        if(arr[j]>arr[j+1]) {\n          let temp=arr[j]\n          arr[j]=arr[j+1];\n          arr[j+1]=temp;\n          isSwapped=true;\n        }\n      }\n      if(!isSwapped)\n        break;\n    }\n    return arr;\n  }\n  let result = bubbleSort(arr)\n  console.log(\"Sorted array\",result)\n      \n    <\/code><\/pre>\n    <\/div>\n    <div class=\"wp_blog_code-tab-content\" data-lang=\"py\">\n        <pre><code class=\"language-python\">\ndef bubbleSort(arr):\n    n = len(arr)\n    for i in range(n - 1):\n      is_swapped = False\n      for j in range(n - 1 - i):\n        if arr[j] > arr[j + 1]:\n          arr[j], arr[j + 1] = arr[j + 1], arr[j]\n          is_swapped = True\n      if not is_swapped:\n        break\n    return arr\n  \n  arr = [4, 5, 1, 3, 9]\n  print(\"Sorted array:\", bubbleSort(arr))\n    <\/code><\/pre>\n    <\/div>\n    <div class=\"wp_blog_code-tab-content\" data-lang=\"java\">\n        <pre><code class=\"language-java\">\n public class Solution {\n    public static void bubbleSort(int[] arr) {\n      int n = arr.length;\n      for (int i = 0; i < n - 1; i++) {\n        boolean isSwapped = false;\n        for (int j = 0; j < n - 1 - i; j++) {\n          if (arr[j] > arr[j + 1]) {\n            int temp = arr[j];\n            arr[j] = arr[j + 1];\n            arr[j + 1] = temp;\n            isSwapped = true;\n          }\n        }\n        if (!isSwapped) break;\n      }\n    }\n  \n    public static void main(String[] args) {\n      int[] arr = {4, 5, 1, 3, 9};\n      bubbleSort(arr);\n      System.out.print(\"Sorted array: \");\n      for (int num : arr) System.out.print(num + \" \");\n    }\n  }\n    \n<\/code><\/pre>\n    <\/div>\n    <div class=\"wp_blog_code-tab-content\" data-lang=\"cpp\">\n        <pre><code class=\"language-cpp\">\n#include &lt;iostream&gt;\n <!-- #include <iostream> -->\n  using namespace std;\n  \n  void bubbleSort(int arr[], int n) {\n    for (int i = 0; i < n - 1; i++) {\n      bool isSwapped = false;\n      for (int j = 0; j < n - 1 - i; j++) {\n        if (arr[j] > arr[j + 1]) {\n          swap(arr[j], arr[j + 1]);\n          isSwapped = true;\n        }\n      }\n      if (!isSwapped) break;\n    }\n  }\n  \n  int main() {\n    int arr[] = {4, 5, 1, 3, 9};\n    int n = sizeof(arr) \/ sizeof(arr[0]);\n    bubbleSort(arr, n);\n    cout << \"Sorted array: \";\n    for (int i = 0; i < n; i++) cout << arr[i] << \" \";\n    return 0;\n  }\n      \n    <\/code><\/pre>\n    <\/div>\n\n    <div class=\"wp_blog_code-tab-content\" data-lang=\"c\">\n        <pre><code class=\"language-c\">\n#include &lt;stdio.h&gt;\n #include &lt;stdbool.h&gt;\n <!-- #include <stdio.h>\n  #include <stdbool.h> -->\n  \n  void bubbleSort(int arr[], int n) {\n    for (int i = 0; i < n - 1; i++) {\n      bool isSwapped = false;\n      for (int j = 0; j < n - 1 - i; j++) {\n        if (arr[j] > arr[j + 1]) {\n          int temp = arr[j];\n          arr[j] = arr[j + 1];\n          arr[j + 1] = temp;\n          isSwapped = true;\n        }\n      }\n      if (!isSwapped) break;\n    }\n  }\n  \n  int main() {\n    int arr[] = {4, 5, 1, 3, 9};\n    int n = sizeof(arr) \/ sizeof(arr[0]);\n    bubbleSort(arr, n);\n    printf(\"Sorted array: \");\n    for (int i = 0; i < n; i++) printf(\"%d \", arr[i]);\n    return 0;\n  }\n     \n<\/code><\/pre>\n    <\/div>\n    <div class=\"wp_blog_code-tab-content\" data-lang=\"cs\">\n        <pre><code class=\"language-csharp\">\nusing System;\nclass Program\n{\n    static int[] BubbleSort(int[] arr)\n    {\n        int n = arr.Length;\n        for (int i = 0; i < n - 1; i++)\n        {\n            bool isSwapped = false;\n            for (int j = 0; j < n - 1 - i; j++)\n            {\n                if (arr[j] > arr[j + 1])\n                {\n                    int temp = arr[j];\n                    arr[j] = arr[j + 1];\n                    arr[j + 1] = temp;\n                    isSwapped = true;\n                }\n            }\n            if (!isSwapped)\n                break;\n        }\n        return arr;\n    }\n    static void Main(string[] args)\n    {\n        int[] arr = { 4, 5, 1, 3, 9 };\n        int[] result = BubbleSort(arr);\n        Console.WriteLine(\"Sorted array: \" + string.Join(\", \", result));\n    }\n}  <\/code><\/pre>\n    <\/div>\n<\/div>\n<\/div>\n<script>\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n  const buttons = document.querySelectorAll(\".wp_blog_code-tab-button\");\n  const contents = document.querySelectorAll(\".wp_blog_code-tab-content\");\n\n  buttons.forEach((button) => {\n    button.addEventListener(\"click\", () => {\n      const lang = button.getAttribute(\"data-lang\");\n\n      buttons.forEach((btn) => btn.classList.remove(\"active\"));\n      contents.forEach((content) => content.classList.remove(\"active\"));\n\n      button.classList.add(\"active\");\n      document\n        .querySelector(`.wp_blog_code-tab-content[data-lang=\"${lang}\"]`)\n        .classList.add(\"active\");\n    });\n  });\n\n  const themeToggle = document.getElementById(\"blogNotesThemeToggle\");\n  const themeContainer = document.querySelector(\".wp_blog_theme\");\n\n  themeToggle.addEventListener(\"click\", () => {\n    themeContainer.classList.toggle(\"dark-mode\");\n    themeToggle.textContent =\n      themeContainer.classList.contains(\"dark-mode\") ? \"\u2600\ufe0f\" : \"\ud83c\udf19\";\n  });\n});\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>\ud83c\udf19 Bubble Sort Bubble Sort is a simple sorting algorithm that repeatedly steps through the list, compares adjacent elements, and swaps them if they are in the wrong order. This process is repeated until the array is sorted. After each pass, the largest unsorted element \u201cbubbles up\u201d to its correct position at the end of<\/p>\n","protected":false},"author":108,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[210,322,176,175,211,810,174,172,173],"tags":[],"class_list":{"0":"post-9764","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-algorithms","7":"category-algorithms-and-data-structures","8":"category-csharp","9":"category-cplusplus","10":"category-data-structures","11":"category-dsa","12":"category-java","13":"category-javascript","14":"category-python"},"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/posts\/9764","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/users\/108"}],"replies":[{"embeddable":true,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/comments?post=9764"}],"version-history":[{"count":4,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/posts\/9764\/revisions"}],"predecessor-version":[{"id":11469,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/posts\/9764\/revisions\/11469"}],"wp:attachment":[{"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/media?parent=9764"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/categories?post=9764"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/tags?post=9764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}