{"id":3175,"date":"2025-06-06T10:58:55","date_gmt":"2025-06-06T10:58:55","guid":{"rendered":"https:\/\/diznr.com\/?p=3175"},"modified":"2025-06-06T10:58:55","modified_gmt":"2025-06-06T10:58:55","slug":"data-structures-and-algorithm-best-sorting-algorithms-bubble-sort-algorithm-bubble-sort-c-in","status":"publish","type":"post","link":"https:\/\/www.reilsolar.com\/pdf\/data-structures-and-algorithm-best-sorting-algorithms-bubble-sort-algorithm-bubble-sort-c-in\/","title":{"rendered":"DATA STRUCTURES AND ALGORITHM &#8211; Best Sorting Algorithms &#8211; Bubble sort Algorithm  Bubble sort in C"},"content":{"rendered":"<p>DATA STRUCTURES AND ALGORITHM &#8211; Best Sorting Algorithms &#8211; Bubble sort Algorithm Bubble sort in C<\/p>\n<p>[fvplayer id=&#8221;287&#8243;]<\/p>\n<h3 data-start=\"0\" data-end=\"57\"><strong data-start=\"4\" data-end=\"55\">Bubble Sort Algorithm in C &#8211; Explanation &amp; Code<\/strong><\/h3>\n<p data-start=\"59\" data-end=\"281\"><strong data-start=\"59\" data-end=\"74\">Bubble Sort<\/strong> is one of the simplest sorting algorithms. It repeatedly steps through the list, compares adjacent elements, and swaps them if they are in the wrong order. This process is repeated until the list is sorted.<\/p>\n<h3 data-start=\"288\" data-end=\"322\"><strong data-start=\"291\" data-end=\"320\">\u00a0How Bubble Sort Works?<\/strong><\/h3>\n<ol data-start=\"323\" data-end=\"564\">\n<li data-start=\"323\" data-end=\"354\">Compare adjacent elements.<\/li>\n<li data-start=\"355\" data-end=\"401\">Swap them if they are in the wrong order.<\/li>\n<li data-start=\"402\" data-end=\"440\">Move to the next pair and repeat.<\/li>\n<li data-start=\"441\" data-end=\"486\">Continue this process for every element.<\/li>\n<li data-start=\"487\" data-end=\"564\">Repeat the entire process for multiple passes until the array is sorted.<\/li>\n<\/ol>\n<p data-start=\"566\" data-end=\"746\"><strong data-start=\"568\" data-end=\"599\">Best Case (Already Sorted):<\/strong> <strong data-start=\"600\" data-end=\"608\">O(n)<\/strong><br data-start=\"608\" data-end=\"611\" \/><strong data-start=\"613\" data-end=\"645\">Worst Case (Reverse Sorted):<\/strong> <strong data-start=\"646\" data-end=\"655\">O(n\u00b2)<\/strong><br data-start=\"655\" data-end=\"658\" \/><strong data-start=\"660\" data-end=\"677\">Average Case:<\/strong> <strong data-start=\"678\" data-end=\"687\">O(n\u00b2)<\/strong><br data-start=\"687\" data-end=\"690\" \/><strong data-start=\"692\" data-end=\"708\">Stable Sort:<\/strong> Yes<br data-start=\"712\" data-end=\"715\" \/><strong data-start=\"717\" data-end=\"740\">In-Place Algorithm:<\/strong> Yes<\/p>\n<h3 data-start=\"753\" data-end=\"791\"><strong data-start=\"756\" data-end=\"789\">\u00a0Bubble Sort Algorithm in C<\/strong><\/h3>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary\">\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\">\n<p><code class=\"!whitespace-pre language-c\"><span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span><\/span> <span class=\"hljs-string\">&lt;stdio.h&gt;<\/span><\/code><\/p>\n<p><span class=\"hljs-comment\">\/\/ Function to perform Bubble Sort<\/span><br \/>\n<span class=\"hljs-type\">void<\/span> <span class=\"hljs-title function_\">bubbleSort<\/span><span class=\"hljs-params\">(<span class=\"hljs-type\">int<\/span><\/span> arr[], <span class=\"hljs-type\">int<\/span> n) {<br \/>\n<span class=\"hljs-type\">int<\/span> i, j, temp;<br \/>\n<span class=\"hljs-type\">int<\/span> swapped;<\/p>\n<p><span class=\"hljs-keyword\">for<\/span> (i = <span class=\"hljs-number\">0<\/span>; i &lt; n &#8211; <span class=\"hljs-number\">1<\/span>; i++) {<br \/>\nswapped = <span class=\"hljs-number\">0<\/span>; <span class=\"hljs-comment\">\/\/ Flag to check if swapping happened<\/span><\/p>\n<p><span class=\"hljs-keyword\">for<\/span> (j = <span class=\"hljs-number\">0<\/span>; j &lt; n &#8211; i &#8211; <span class=\"hljs-number\">1<\/span>; j++) {<br \/>\n<span class=\"hljs-keyword\">if<\/span> (arr[j] &gt; arr[j + <span class=\"hljs-number\">1<\/span>]) { <span class=\"hljs-comment\">\/\/ Swap if the current element is greater than the next<\/span><br \/>\ntemp = arr[j];<br \/>\narr[j] = arr[j + <span class=\"hljs-number\">1<\/span>];<br \/>\narr[j + <span class=\"hljs-number\">1<\/span>] = temp;<br \/>\nswapped = <span class=\"hljs-number\">1<\/span>;<br \/>\n}<br \/>\n}<\/p>\n<p><span class=\"hljs-comment\">\/\/ If no two elements were swapped, break the loop (Optimization)<\/span><br \/>\n<span class=\"hljs-keyword\">if<\/span> (swapped == <span class=\"hljs-number\">0<\/span>)<br \/>\n<span class=\"hljs-keyword\">break<\/span>;<br \/>\n}<br \/>\n}<\/p>\n<p><span class=\"hljs-comment\">\/\/ Function to print an array<\/span><br \/>\n<span class=\"hljs-type\">void<\/span> <span class=\"hljs-title function_\">printArray<\/span><span class=\"hljs-params\">(<span class=\"hljs-type\">int<\/span><\/span> arr[], <span class=\"hljs-type\">int<\/span> n) {<br \/>\n<span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-type\">int<\/span> i = <span class=\"hljs-number\">0<\/span>; i &lt; n; i++)<br \/>\n<span class=\"hljs-built_in\">printf<\/span>(<span class=\"hljs-string\">&#8220;%d &#8220;<\/span>, arr[i]);<br \/>\n<span class=\"hljs-built_in\">printf<\/span>(<span class=\"hljs-string\">&#8220;\\n&#8221;<\/span>);<br \/>\n}<\/p>\n<p><span class=\"hljs-comment\">\/\/ Main function<\/span><br \/>\n<span class=\"hljs-type\">int<\/span> <span class=\"hljs-title function_\">main<\/span><span class=\"hljs-params\">()<\/span> {<br \/>\n<span class=\"hljs-type\">int<\/span> arr[] = {<span class=\"hljs-number\">64<\/span>, <span class=\"hljs-number\">25<\/span>, <span class=\"hljs-number\">12<\/span>, <span class=\"hljs-number\">22<\/span>, <span class=\"hljs-number\">11<\/span>};<br \/>\n<span class=\"hljs-type\">int<\/span> n = <span class=\"hljs-keyword\">sizeof<\/span>(arr) \/ <span class=\"hljs-keyword\">sizeof<\/span>(arr[<span class=\"hljs-number\">0<\/span>]);<\/p>\n<p><span class=\"hljs-built_in\">printf<\/span>(<span class=\"hljs-string\">&#8220;Original array: &#8220;<\/span>);<br \/>\nprintArray(arr, n);<\/p>\n<p>bubbleSort(arr, n);<\/p>\n<p><span class=\"hljs-built_in\">printf<\/span>(<span class=\"hljs-string\">&#8220;Sorted array: &#8220;<\/span>);<br \/>\nprintArray(arr, n);<\/p>\n<p><span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;<br \/>\n}<\/p>\n<\/div>\n<\/div>\n<h3 data-start=\"1868\" data-end=\"1897\"><strong data-start=\"1871\" data-end=\"1897\">Explanation of Code<\/strong><\/h3>\n<ol data-start=\"1898\" data-end=\"2297\">\n<li data-start=\"1898\" data-end=\"1982\"><strong data-start=\"1901\" data-end=\"1916\">Outer Loop:<\/strong> Runs for <strong data-start=\"1926\" data-end=\"1942\">(n-1) passes<\/strong> to move the largest element to the end.<\/li>\n<li data-start=\"1983\" data-end=\"2069\"><strong data-start=\"1986\" data-end=\"2001\">Inner Loop:<\/strong> Compares adjacent elements and swaps them if they are out of order.<\/li>\n<li data-start=\"2070\" data-end=\"2169\"><strong data-start=\"2073\" data-end=\"2090\">Optimization:<\/strong> If no swaps occur in a pass, the array is already sorted, and the loop breaks.<\/li>\n<li data-start=\"2170\" data-end=\"2297\"><strong data-start=\"2173\" data-end=\"2192\">Function Usage:<\/strong>\n<ul data-start=\"2198\" data-end=\"2297\">\n<li data-start=\"2198\" data-end=\"2234\"><code data-start=\"2200\" data-end=\"2214\">bubbleSort()<\/code> performs sorting.<\/li>\n<li data-start=\"2238\" data-end=\"2297\"><code data-start=\"2240\" data-end=\"2254\">printArray()<\/code> prints the array before and after sorting.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3 data-start=\"2304\" data-end=\"2331\"><strong data-start=\"2307\" data-end=\"2331\">\u00a0Example Execution<\/strong><\/h3>\n<h3 data-start=\"2332\" data-end=\"2346\"><strong data-start=\"2336\" data-end=\"2346\">Input:<\/strong><\/h3>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary\">\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre language-c\"><span class=\"hljs-type\">int<\/span> arr[] = {<span class=\"hljs-number\">64<\/span>, <span class=\"hljs-number\">25<\/span>, <span class=\"hljs-number\">12<\/span>, <span class=\"hljs-number\">22<\/span>, <span class=\"hljs-number\">11<\/span>};<br \/>\n<\/code><\/div>\n<\/div>\n<h3 data-start=\"2390\" data-end=\"2414\"><strong data-start=\"2394\" data-end=\"2414\">Sorting Process:<\/strong><\/h3>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary\">\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre\"><span class=\"hljs-selector-tag\">Pass<\/span> <span class=\"hljs-number\">1<\/span>: <span class=\"hljs-selector-attr\">[25, 12, 22, 11, 64]<\/span><br \/>\n<span class=\"hljs-selector-tag\">Pass<\/span> <span class=\"hljs-number\">2<\/span>: <span class=\"hljs-selector-attr\">[12, 22, 11, 25, 64]<\/span><br \/>\n<span class=\"hljs-selector-tag\">Pass<\/span> <span class=\"hljs-number\">3<\/span>: <span class=\"hljs-selector-attr\">[12, 11, 22, 25, 64]<\/span><br \/>\n<span class=\"hljs-selector-tag\">Pass<\/span> <span class=\"hljs-number\">4<\/span>: <span class=\"hljs-selector-attr\">[11, 12, 22, 25, 64]<\/span><br \/>\n<\/code><\/div>\n<\/div>\n<h3 data-start=\"2539\" data-end=\"2554\"><strong data-start=\"2543\" data-end=\"2554\">Output:<\/strong><\/h3>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary\">\n<div class=\"flex items-center text-token-text-secondary px-4 py-2 text-xs font-sans justify-between h-9 bg-token-sidebar-surface-primary dark:bg-token-main-surface-secondary select-none rounded-t-[5px]\"><\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"!whitespace-pre\">Original <span class=\"hljs-keyword\">array<\/span>: <span class=\"hljs-number\">64<\/span> <span class=\"hljs-number\">25<\/span> <span class=\"hljs-number\">12<\/span> <span class=\"hljs-number\">22<\/span> <span class=\"hljs-number\">11<\/span><br \/>\nSorted <span class=\"hljs-keyword\">array<\/span>: <span class=\"hljs-number\">11<\/span> <span class=\"hljs-number\">12<\/span> <span class=\"hljs-number\">22<\/span> <span class=\"hljs-number\">25<\/span> <span class=\"hljs-number\">64<\/span><br \/>\n<\/code><\/div>\n<\/div>\n<h3 data-start=\"2630\" data-end=\"2666\"><strong data-start=\"2633\" data-end=\"2666\">\u00a0Advantages &amp; Disadvantages<\/strong><\/h3>\n<p data-start=\"2667\" data-end=\"2686\"><strong data-start=\"2669\" data-end=\"2684\">Advantages:<\/strong><\/p>\n<ul data-start=\"2687\" data-end=\"2785\">\n<li data-start=\"2687\" data-end=\"2720\">Simple and easy to implement.<\/li>\n<li data-start=\"2721\" data-end=\"2755\">Works well for small datasets.<\/li>\n<li data-start=\"2756\" data-end=\"2785\">Stable sorting algorithm.<\/li>\n<\/ul>\n<p data-start=\"2787\" data-end=\"2809\"><strong data-start=\"2789\" data-end=\"2807\">Disadvantages:<\/strong><\/p>\n<ul data-start=\"2810\" data-end=\"2927\">\n<li data-start=\"2810\" data-end=\"2845\">Inefficient for large datasets.<\/li>\n<li data-start=\"2846\" data-end=\"2927\">Time complexity <strong data-start=\"2864\" data-end=\"2873\">O(n\u00b2)<\/strong> makes it slow compared to other sorting algorithms.<\/li>\n<\/ul>\n<h3 data-start=\"2934\" data-end=\"2974\"><strong data-start=\"2937\" data-end=\"2974\">\u00a0Alternative Sorting Algorithms<\/strong><\/h3>\n<ul data-start=\"2975\" data-end=\"3148\">\n<li data-start=\"2975\" data-end=\"3029\"><strong data-start=\"2977\" data-end=\"2995\">Selection Sort<\/strong> &#8211; More efficient but still O(n\u00b2).<\/li>\n<li data-start=\"3030\" data-end=\"3088\"><strong data-start=\"3032\" data-end=\"3050\">Insertion Sort<\/strong> &#8211; Efficient for nearly sorted arrays.<\/li>\n<li data-start=\"3089\" data-end=\"3148\"><strong data-start=\"3091\" data-end=\"3118\">Merge Sort &amp; Quick Sort<\/strong> &#8211; More efficient, O(n log n).<\/li>\n<\/ul>\n<p data-start=\"3150\" data-end=\"3238\" data-is-last-node=\"\" data-is-only-node=\"\">Would you like an optimized sorting algorithm like <strong data-start=\"3201\" data-end=\"3229\">Quick Sort or Merge Sort<\/strong> in C?<\/p>\n<h3 data-start=\"3150\" data-end=\"3238\"><a href=\"https:\/\/www.cecmohali.org\/public\/documents\/applied\/material\/ppt\/Bubblesort-Algorithm.pdf\" target=\"_blank\" rel=\"noopener\">DATA STRUCTURES AND ALGORITHM &#8211; Best Sorting Algorithms &#8211; Bubble sort Algorithm Bubble sort in C<\/a><\/h3>\n<h3 class=\"LC20lb MBeuO DKV0Md\"><a href=\"http:\/\/www.it.griet.ac.in\/wp-content\/uploads\/2014\/08\/UNIT-V_QA.pdf\" target=\"_blank\" rel=\"noopener\">V: Sorting: Bubble sort, Merge sort, Insertion Sort, Selection &#8230;<\/a><\/h3>\n<h3 class=\"LC20lb MBeuO DKV0Md\"><a href=\"https:\/\/www.tutorialspoint.com\/data_structures_algorithms\/pdf\/bubble_sort_algorithm.pdf\" target=\"_blank\" rel=\"noopener\">Data Structures &amp; Algorithms Bubble Sort<\/a><\/h3>\n<p data-start=\"0\" data-end=\"167\">Here\u2019s a complete guide to <strong data-start=\"27\" data-end=\"52\">Bubble Sort Algorithm<\/strong>\u2014a classic sorting technique, especially useful for understanding the basics of <strong data-start=\"132\" data-end=\"166\">data structures and algorithms<\/strong>.<\/p>\n<hr data-start=\"169\" data-end=\"172\" \/>\n<h2 data-start=\"174\" data-end=\"224\">\ud83d\udcda <strong data-start=\"180\" data-end=\"224\">Best Sorting Algorithms (Quick Overview)<\/strong><\/h2>\n<p data-start=\"226\" data-end=\"273\">Here are some commonly used sorting algorithms:<\/p>\n<div class=\"_tableContainer_16hzy_1\">\n<div class=\"_tableWrapper_16hzy_14 group flex w-fit flex-col-reverse\">\n<table class=\"w-fit min-w-(--thread-content-width)\" data-start=\"275\" data-end=\"864\">\n<thead data-start=\"275\" data-end=\"348\">\n<tr data-start=\"275\" data-end=\"348\">\n<th data-start=\"275\" data-end=\"292\" data-col-size=\"sm\">Algorithm<\/th>\n<th data-start=\"292\" data-end=\"310\" data-col-size=\"sm\">Time Complexity<\/th>\n<th data-start=\"310\" data-end=\"348\" data-col-size=\"sm\">Use Case<\/th>\n<\/tr>\n<\/thead>\n<tbody data-start=\"423\" data-end=\"864\">\n<tr data-start=\"423\" data-end=\"496\">\n<td data-start=\"423\" data-end=\"441\" data-col-size=\"sm\"><strong data-start=\"425\" data-end=\"440\">Bubble Sort<\/strong><\/td>\n<td data-col-size=\"sm\" data-start=\"441\" data-end=\"458\">O(n\u00b2)<\/td>\n<td data-col-size=\"sm\" data-start=\"458\" data-end=\"496\">Easy to understand, educational<\/td>\n<\/tr>\n<tr data-start=\"497\" data-end=\"572\">\n<td data-start=\"497\" data-end=\"518\" data-col-size=\"sm\"><strong data-start=\"499\" data-end=\"517\">Selection Sort<\/strong><\/td>\n<td data-col-size=\"sm\" data-start=\"518\" data-end=\"532\">O(n\u00b2)<\/td>\n<td data-col-size=\"sm\" data-start=\"532\" data-end=\"572\">Simple, not efficient for large data<\/td>\n<\/tr>\n<tr data-start=\"573\" data-end=\"645\">\n<td data-start=\"573\" data-end=\"594\" data-col-size=\"sm\"><strong data-start=\"575\" data-end=\"593\">Insertion Sort<\/strong><\/td>\n<td data-col-size=\"sm\" data-start=\"594\" data-end=\"607\">O(n\u00b2)<\/td>\n<td data-col-size=\"sm\" data-start=\"607\" data-end=\"645\">Good for nearly sorted data<\/td>\n<\/tr>\n<tr data-start=\"646\" data-end=\"718\">\n<td data-start=\"646\" data-end=\"663\" data-col-size=\"sm\"><strong data-start=\"648\" data-end=\"662\">Merge Sort<\/strong><\/td>\n<td data-col-size=\"sm\" data-start=\"663\" data-end=\"680\">O(n log n)<\/td>\n<td data-col-size=\"sm\" data-start=\"680\" data-end=\"718\">Fast, stable, divide-and-conquer<\/td>\n<\/tr>\n<tr data-start=\"719\" data-end=\"791\">\n<td data-start=\"719\" data-end=\"736\" data-col-size=\"sm\"><strong data-start=\"721\" data-end=\"735\">Quick Sort<\/strong><\/td>\n<td data-col-size=\"sm\" data-start=\"736\" data-end=\"753\">O(n log n)<\/td>\n<td data-col-size=\"sm\" data-start=\"753\" data-end=\"791\">Very fast, widely used<\/td>\n<\/tr>\n<tr data-start=\"792\" data-end=\"864\">\n<td data-start=\"792\" data-end=\"809\" data-col-size=\"sm\"><strong data-start=\"794\" data-end=\"807\">Heap Sort<\/strong><\/td>\n<td data-col-size=\"sm\" data-start=\"809\" data-end=\"826\">O(n log n)<\/td>\n<td data-col-size=\"sm\" data-start=\"826\" data-end=\"864\">Good for memory-constrained systems<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"sticky end-(--thread-content-margin) h-0 self-end select-none\">\n<div class=\"absolute end-0 flex items-end\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<hr data-start=\"866\" data-end=\"869\" \/>\n<h2 data-start=\"871\" data-end=\"901\">\ud83d\udd01 <strong data-start=\"877\" data-end=\"901\">What is Bubble Sort?<\/strong><\/h2>\n<p data-start=\"903\" data-end=\"1059\"><strong data-start=\"903\" data-end=\"918\">Bubble Sort<\/strong> is a simple algorithm that repeatedly steps through the list, compares adjacent elements, and <strong data-start=\"1013\" data-end=\"1058\">swaps them if they are in the wrong order<\/strong>.<\/p>\n<h3 data-start=\"1061\" data-end=\"1081\">\ud83d\udd38 How It Works:<\/h3>\n<ul data-start=\"1083\" data-end=\"1233\">\n<li data-start=\"1083\" data-end=\"1124\">\n<p data-start=\"1085\" data-end=\"1124\">Compare each pair of adjacent elements.<\/p>\n<\/li>\n<li data-start=\"1125\" data-end=\"1168\">\n<p data-start=\"1127\" data-end=\"1168\">Swap them if they are in the wrong order.<\/p>\n<\/li>\n<li data-start=\"1169\" data-end=\"1233\">\n<p data-start=\"1171\" data-end=\"1233\">Repeat the process for all elements until the array is sorted.<\/p>\n<\/li>\n<\/ul>\n<h3 data-start=\"1235\" data-end=\"1251\">\ud83e\udde0 Key Idea:<\/h3>\n<p data-start=\"1252\" data-end=\"1317\">Larger values &#8220;bubble up&#8221; to the end of the array with each pass.<\/p>\n<hr data-start=\"1319\" data-end=\"1322\" \/>\n<h2 data-start=\"1324\" data-end=\"1362\">\u2705 <strong data-start=\"1329\" data-end=\"1362\">Bubble Sort Algorithm (Steps)<\/strong><\/h2>\n<ol data-start=\"1364\" data-end=\"1634\">\n<li data-start=\"1364\" data-end=\"1403\">\n<p data-start=\"1367\" data-end=\"1403\">Start at the beginning of the array.<\/p>\n<\/li>\n<li data-start=\"1404\" data-end=\"1453\">\n<p data-start=\"1407\" data-end=\"1453\">Compare the current element with the next one.<\/p>\n<\/li>\n<li data-start=\"1454\" data-end=\"1507\">\n<p data-start=\"1457\" data-end=\"1507\">Swap them if the current is greater than the next.<\/p>\n<\/li>\n<li data-start=\"1508\" data-end=\"1561\">\n<p data-start=\"1511\" data-end=\"1561\">Move to the next element and repeat until the end.<\/p>\n<\/li>\n<li data-start=\"1562\" data-end=\"1634\">\n<p data-start=\"1565\" data-end=\"1634\">Repeat the entire process <strong data-start=\"1591\" data-end=\"1604\">n-1 times<\/strong> or until no swaps are needed.<\/p>\n<\/li>\n<\/ol>\n<hr data-start=\"1636\" data-end=\"1639\" \/>\n<h2 data-start=\"1641\" data-end=\"1667\">\ud83d\udcbb <strong data-start=\"1647\" data-end=\"1667\">Bubble Sort in C<\/strong><\/h2>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary\">\n<div class=\"flex items-center text-token-text-secondary px-4 py-2 text-xs font-sans justify-between h-9 bg-token-sidebar-surface-primary dark:bg-token-main-surface-secondary select-none rounded-t-[5px]\">c<\/div>\n<div class=\"sticky top-9\">\n<div class=\"absolute end-0 bottom-0 flex h-9 items-center pe-2\">\n<div class=\"bg-token-sidebar-surface-primary text-token-text-secondary dark:bg-token-main-surface-secondary flex items-center rounded-sm px-2 font-sans text-xs\"><button class=\"flex gap-1 items-center select-none px-4 py-1\" aria-label=\"Copy\">Copy<\/button><span class=\"\" data-state=\"closed\"><button class=\"flex items-center gap-1 px-4 py-1 select-none\">Edit<\/button><\/span><\/div>\n<\/div>\n<\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\">\n<p><code class=\"whitespace-pre! language-c\"><span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span><\/span> <span class=\"hljs-string\">&lt;stdio.h&gt;<\/span><\/code><\/p>\n<p><span class=\"hljs-type\">void<\/span> <span class=\"hljs-title function_\">bubbleSort<\/span><span class=\"hljs-params\">(<span class=\"hljs-type\">int<\/span><\/span> arr[], <span class=\"hljs-type\">int<\/span> n) {<br \/>\n<span class=\"hljs-type\">int<\/span> i, j, temp;<br \/>\n<span class=\"hljs-type\">int<\/span> swapped;<\/p>\n<p><span class=\"hljs-keyword\">for<\/span> (i = <span class=\"hljs-number\">0<\/span>; i &lt; n &#8211; <span class=\"hljs-number\">1<\/span>; i++) {<br \/>\nswapped = <span class=\"hljs-number\">0<\/span>; <span class=\"hljs-comment\">\/\/ Flag to check if any swap occurred<\/span><\/p>\n<p><span class=\"hljs-keyword\">for<\/span> (j = <span class=\"hljs-number\">0<\/span>; j &lt; n &#8211; i &#8211; <span class=\"hljs-number\">1<\/span>; j++) {<br \/>\n<span class=\"hljs-comment\">\/\/ Compare adjacent elements<\/span><br \/>\n<span class=\"hljs-keyword\">if<\/span> (arr[j] &gt; arr[j + <span class=\"hljs-number\">1<\/span>]) {<br \/>\n<span class=\"hljs-comment\">\/\/ Swap them<\/span><br \/>\ntemp = arr[j];<br \/>\narr[j] = arr[j + <span class=\"hljs-number\">1<\/span>];<br \/>\narr[j + <span class=\"hljs-number\">1<\/span>] = temp;<br \/>\nswapped = <span class=\"hljs-number\">1<\/span>;<br \/>\n}<br \/>\n}<\/p>\n<p><span class=\"hljs-comment\">\/\/ If no swap occurred, the array is already sorted<\/span><br \/>\n<span class=\"hljs-keyword\">if<\/span> (!swapped)<br \/>\n<span class=\"hljs-keyword\">break<\/span>;<br \/>\n}<br \/>\n}<\/p>\n<p><span class=\"hljs-type\">void<\/span> <span class=\"hljs-title function_\">printArray<\/span><span class=\"hljs-params\">(<span class=\"hljs-type\">int<\/span><\/span> arr[], <span class=\"hljs-type\">int<\/span> size) {<br \/>\n<span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-type\">int<\/span> i = <span class=\"hljs-number\">0<\/span>; i &lt; size; i++)<br \/>\n<span class=\"hljs-built_in\">printf<\/span>(<span class=\"hljs-string\">&#8220;%d &#8220;<\/span>, arr[i]);<br \/>\n<span class=\"hljs-built_in\">printf<\/span>(<span class=\"hljs-string\">&#8220;\\n&#8221;<\/span>);<br \/>\n}<\/p>\n<p><span class=\"hljs-type\">int<\/span> <span class=\"hljs-title function_\">main<\/span><span class=\"hljs-params\">()<\/span> {<br \/>\n<span class=\"hljs-type\">int<\/span> arr[] = {<span class=\"hljs-number\">64<\/span>, <span class=\"hljs-number\">34<\/span>, <span class=\"hljs-number\">25<\/span>, <span class=\"hljs-number\">12<\/span>, <span class=\"hljs-number\">22<\/span>, <span class=\"hljs-number\">11<\/span>, <span class=\"hljs-number\">90<\/span>};<br \/>\n<span class=\"hljs-type\">int<\/span> n = <span class=\"hljs-keyword\">sizeof<\/span>(arr)\/<span class=\"hljs-keyword\">sizeof<\/span>(arr[<span class=\"hljs-number\">0<\/span>]);<\/p>\n<p><span class=\"hljs-built_in\">printf<\/span>(<span class=\"hljs-string\">&#8220;Original array:\\n&#8221;<\/span>);<br \/>\nprintArray(arr, n);<\/p>\n<p>bubbleSort(arr, n);<\/p>\n<p><span class=\"hljs-built_in\">printf<\/span>(<span class=\"hljs-string\">&#8220;Sorted array:\\n&#8221;<\/span>);<br \/>\nprintArray(arr, n);<br \/>\n<span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;<br \/>\n}<\/p>\n<\/div>\n<\/div>\n<hr data-start=\"2665\" data-end=\"2668\" \/>\n<h2 data-start=\"2670\" data-end=\"2683\">\ud83d\udccc Output:<\/h2>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary\">\n<div class=\"flex items-center text-token-text-secondary px-4 py-2 text-xs font-sans justify-between h-9 bg-token-sidebar-surface-primary dark:bg-token-main-surface-secondary select-none rounded-t-[5px]\">php<\/div>\n<div class=\"sticky top-9\">\n<div class=\"absolute end-0 bottom-0 flex h-9 items-center pe-2\">\n<div class=\"bg-token-sidebar-surface-primary text-token-text-secondary dark:bg-token-main-surface-secondary flex items-center rounded-sm px-2 font-sans text-xs\"><button class=\"flex gap-1 items-center select-none px-4 py-1\" aria-label=\"Copy\">Copy<\/button><span class=\"\" data-state=\"closed\"><button class=\"flex items-center gap-1 px-4 py-1 select-none\">Edit<\/button><\/span><\/div>\n<\/div>\n<\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"whitespace-pre!\">Original <span class=\"hljs-keyword\">array<\/span>:<br \/>\n<span class=\"hljs-number\">64<\/span> <span class=\"hljs-number\">34<\/span> <span class=\"hljs-number\">25<\/span> <span class=\"hljs-number\">12<\/span> <span class=\"hljs-number\">22<\/span> <span class=\"hljs-number\">11<\/span> <span class=\"hljs-number\">90<\/span><br \/>\nSorted <span class=\"hljs-keyword\">array<\/span>:<br \/>\n<span class=\"hljs-number\">11<\/span> <span class=\"hljs-number\">12<\/span> <span class=\"hljs-number\">22<\/span> <span class=\"hljs-number\">25<\/span> <span class=\"hljs-number\">34<\/span> <span class=\"hljs-number\">64<\/span> <span class=\"hljs-number\">90<\/span><br \/>\n<\/code><\/div>\n<\/div>\n<hr data-start=\"2765\" data-end=\"2768\" \/>\n<h2 data-start=\"2770\" data-end=\"2801\">\ud83e\uddea Time and Space Complexity<\/h2>\n<div class=\"_tableContainer_16hzy_1\">\n<div class=\"_tableWrapper_16hzy_14 group flex w-fit flex-col-reverse\">\n<table class=\"w-fit min-w-(--thread-content-width)\" data-start=\"2803\" data-end=\"3012\">\n<thead data-start=\"2803\" data-end=\"2836\">\n<tr data-start=\"2803\" data-end=\"2836\">\n<th data-start=\"2803\" data-end=\"2817\" data-col-size=\"sm\">Case<\/th>\n<th data-start=\"2817\" data-end=\"2836\" data-col-size=\"sm\">Time Complexity<\/th>\n<\/tr>\n<\/thead>\n<tbody data-start=\"2871\" data-end=\"3012\">\n<tr data-start=\"2871\" data-end=\"2910\">\n<td data-start=\"2871\" data-end=\"2891\" data-col-size=\"sm\">Best (Sorted)<\/td>\n<td data-col-size=\"sm\" data-start=\"2891\" data-end=\"2910\">O(n)<\/td>\n<\/tr>\n<tr data-start=\"2911\" data-end=\"2944\">\n<td data-start=\"2911\" data-end=\"2925\" data-col-size=\"sm\">Average<\/td>\n<td data-start=\"2925\" data-end=\"2944\" data-col-size=\"sm\">O(n\u00b2)<\/td>\n<\/tr>\n<tr data-start=\"2945\" data-end=\"2978\">\n<td data-start=\"2945\" data-end=\"2959\" data-col-size=\"sm\">Worst<\/td>\n<td data-col-size=\"sm\" data-start=\"2959\" data-end=\"2978\">O(n\u00b2)<\/td>\n<\/tr>\n<tr data-start=\"2979\" data-end=\"3012\">\n<td data-start=\"2979\" data-end=\"2993\" data-col-size=\"sm\">Space<\/td>\n<td data-col-size=\"sm\" data-start=\"2993\" data-end=\"3012\">O(1)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"sticky end-(--thread-content-margin) h-0 self-end select-none\">\n<div class=\"absolute end-0 flex items-end\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<hr data-start=\"3014\" data-end=\"3017\" \/>\n<h2 data-start=\"3019\" data-end=\"3047\">\u2705 When to Use Bubble Sort<\/h2>\n<ul data-start=\"3048\" data-end=\"3151\">\n<li data-start=\"3048\" data-end=\"3072\">\n<p data-start=\"3050\" data-end=\"3072\">For <strong data-start=\"3054\" data-end=\"3072\">small datasets<\/strong><\/p>\n<\/li>\n<li data-start=\"3073\" data-end=\"3100\">\n<p data-start=\"3075\" data-end=\"3100\">For <strong data-start=\"3079\" data-end=\"3100\">learning purposes<\/strong><\/p>\n<\/li>\n<li data-start=\"3101\" data-end=\"3151\">\n<p data-start=\"3103\" data-end=\"3151\">When <strong data-start=\"3108\" data-end=\"3122\">simplicity<\/strong> is more important than speed<\/p>\n<\/li>\n<\/ul>\n<hr data-start=\"3153\" data-end=\"3156\" \/>\n<p data-start=\"3158\" data-end=\"3267\" data-is-last-node=\"\" data-is-only-node=\"\">Would you like examples of <strong data-start=\"3185\" data-end=\"3218\">other sorting algorithms in C<\/strong>, or a comparison chart for when to use each one?<\/p>\n<h3 data-start=\"3158\" data-end=\"3267\"><a href=\"https:\/\/www.cet.edu.in\/noticefiles\/280_DS%20Complete.pdf\" target=\"_blank\" rel=\"noopener\">DATA STRUCTURES AND ALGORITHM &#8211; Best Sorting Algorithms &#8211; Bubble sort Algorithm Bubble sort in C<\/a><\/h3>\n<h3 class=\"LC20lb MBeuO DKV0Md\"><a href=\"https:\/\/www.lkouniv.ac.in\/site\/writereaddata\/siteContent\/202003251324427324himanshu_Searching_Sorting.pdf\" target=\"_blank\" rel=\"noopener\">Searching and Sorting<\/a><\/h3>\n","protected":false},"excerpt":{"rendered":"<p>DATA STRUCTURES AND ALGORITHM &#8211; Best Sorting Algorithms &#8211; Bubble sort Algorithm Bubble sort in C [fvplayer id=&#8221;287&#8243;] Bubble Sort Algorithm in C &#8211; Explanation &amp; Code Bubble Sort is one of the simplest sorting algorithms. It repeatedly steps through the list, compares adjacent elements, and swaps them if they are in the wrong order. [&hellip;]<\/p>\n","protected":false},"author":66,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1640],"tags":[],"class_list":["post-3175","post","type-post","status-publish","format-standard","hentry","category-data-structure"],"_links":{"self":[{"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/posts\/3175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/users\/66"}],"replies":[{"embeddable":true,"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/comments?post=3175"}],"version-history":[{"count":0,"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/posts\/3175\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/media?parent=3175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/categories?post=3175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/tags?post=3175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}