What is Bogosort?

AYMAN PATIL
2 min readSep 17, 2023

--

Bogosort is a highly inefficient and humorous sorting algorithm that is not practical for any real-world use. It’s often used as a joke or as an example of what not to do when sorting data.

The way bogosort works is quite simple, yet incredibly inefficient:

  1. Take a list of elements that you want to sort.
  2. Randomly shuffle the elements into a random order.
  3. Check if the list is sorted. If it is, you’re done. If it’s not, go back to step 2 and repeat.

The name “bogosort” is a portmanteau of “bogus” and “sort,” which accurately reflects its nature. Because it relies on random shuffling and has no guarantee of termination, bogosort’s average and worst-case time complexity is unbounded. In fact, there’s no way to predict how long it will take to sort a list using bogosort, making it one of the least efficient sorting algorithms imaginable.

In practice, bogosort is used as a humorous illustration of how not to sort data. Real-world sorting algorithms, such as quicksort, mergesort, and heapsort, are designed for efficiency and guarantee sorted results in a reasonable amount of time, unlike the unpredictable and inefficient bogosort.

Here’s a simple Java code implementation of the bogosort algorithm.

import java.util.Arrays;
import java.util.Random;

public class BogoSort {

// Function to check if an array is sorted
public static boolean isSorted(int[] array) {
for (int i = 1; i < array.length; i++) {
if (array[i] < array[i - 1]) {
return false;
}
}
return true;
}

// Function to shuffle an array randomly
public static void shuffle(int[] array) {
Random rand = new Random();
for (int i = array.length - 1; i > 0; i--) {
int j = rand.nextInt(i + 1);
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}

// Bogosort algorithm
public static void bogoSort(int[] array) {
while (!isSorted(array)) {
shuffle(array);
}
}

public static void main(String[] args) {
int[] unsortedArray = {5, 2, 9, 3, 1};

System.out.println("Unsorted Array: " + Arrays.toString(unsortedArray));

bogoSort(unsortedArray);

System.out.println("Sorted Array: " + Arrays.toString(unsortedArray));
}
}

--

--

AYMAN PATIL
AYMAN PATIL

Written by AYMAN PATIL

Hey there internet! This is Ayman and I write blogs for fun

No responses yet