Bubble Sort

Bubble Sort is the simplest sorting algorithm that works by repeatedly swapping adjacent elements if they are in the wrong order. This procedure is repeated until no swaps are required, indicating that the list has been sorted.

Time Complexity:

1)The best case time complexity of bubble sort is O(n).
2)The average case time complexity of bubble sort is O(n^2).
3)The worst case time complexity of bubble sort is O(n^2).

Space Complexity:

The space complexity of bubble sort is O(1).

Java

python

JavaScript

c

                 
      //javaScript program for the implementation of bubble sort
                    function swap(arr, xp, yp)
                    {
                      var temp = arr[xp];
                      arr[xp] = arr[yp];
                      arr[yp] = temp;
                    }
                    
                    // An optimized version of Bubble Sort
                    function bubbleSort( arr, n)
                    {
                    var i, j;
                    for (i = 0; i < n-1; i++)
                    {
                      for (j = 0; j < n-i-1; j++)
                      {
                        if (arr[j] > arr[j+1])
                        {
                        swap(arr,j,j+1);
                        
                        }
                      }
                    
                    }
                    }
                    
                    /* Function to print an array */
                    function printArray(arr, size)
                    {
                      var i;
                      for (i=0; i < size; i++)
                        document.write(arr[i]+ " ");
                      document.write("\n");
                    }
                    
                    // Driver program to test above functions
                    var arr = [5, 1, 4, 2, 8];
                      var n = 5;
                      document.write("UnSorted array: \n");
                      printArray(arr, n);
                    
                      bubbleSort(arr, n);
                      document.write("Sorted array: \n");
                      printArray(arr, n);
                   
                    
                
                 
// Java program for implementation of Bubble Sort
import java.util.*;

class BubbleSort {
	void bubbleSort(int arr[])
	{
		int n = arr.length;
		for (int i = 0; i < n - 1; i++)
			for (int j = 0; j < n - i - 1; j++)
				if (arr[j] > arr[j + 1]) {
					// swap arr[j+1] and arr[j]
					int temp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = temp;
				}
	}

	/* Prints the array */
	void printArray(int arr[])
	{
		int n = arr.length;
		for (int i = 0; i < n; ++i)
			System.out.print(arr[i] + " ");
		System.out.println();
	}

	// Driver method to test above
	public static void main(String args[])
	{
		BubbleSort ob = new BubbleSort();
		int arr[] = { 5, 1, 4, 2, 8 };
		ob.bubbleSort(arr);
		System.out.println("Sorted array");
		ob.printArray(arr);
	}
}



              

              
            # Python program for implementation of Bubble Sort


                def bubbleSort(arr):
                  n = len(arr)
                
                  # Traverse through all array elements
                  for i in range(n):
                
                    # Last i elements are already in place
                    for j in range(0, n-i-1):
                
                      # traverse the array from 0 to n-i-1
                      # Swap if the element found is greater
                      # than the next element
                      if arr[j] > arr[j+1]:
                        arr[j], arr[j+1] = arr[j+1], arr[j]
                
                
                # Driver code to test above
                if __name__ == "__main__":
                arr = [5, 1, 4, 2, 8]
                
                bubbleSort(arr)
                
                print("Sorted array is:")
                for i in range(len(arr)):
                  print("%d" % arr[i], end=" ")
                
                
              

              

                
                // C program for implementation of Bubble sort
                #include 
                
                void swap(int* xp, int* yp)
                {
                  int temp = *xp;
                  *xp = *yp;
                  *yp = temp;
                }
                
                // A function to implement bubble sort
                void bubbleSort(int arr[], int n)
                {
                  int i, j;
                  for (i = 0; i < n - 1; i++)
                
                    // Last i elements are already in place
                    for (j = 0; j < n - i - 1; j++)
                      if (arr[j] > arr[j + 1])
                        swap(&arr[j], &arr[j + 1]);
                }
                
                /* Function to print an array */
                void printArray(int arr[], int size)
                {
                  int i;
                  for (i = 0; i < size; i++)
                    printf("%d ", arr[i]);
                  printf("\n");
                }
                
                // Driver program to test above functions
                int main()
                {
                  int arr[] = { 5, 1, 4, 2, 8 };
                  int n = sizeof(arr) / sizeof(arr[0]);
                  bubbleSort(arr, n);
                  printf("Sorted array: \n");
                  printArray(arr, n);
                  return 0;
                }