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; }