Bogo Sort

Bogo Sort :

Author(s) : H. Seward Date : 1956

Bogo sort, also known as permutation sort or stupid sort, is a highly inefficient sorting algorithm based on the generate and test paradigm. The algorithm successively generates permutations of its input until it finds one that is sorted. It is primarily used for educational purposes to contrast with more efficient algorithms.

Time Complexity O(n * n!)
Best Case O(n)
Worst Case Unbounded
Space Complexity O(1)
Stable No

Code Integration:

* the code might contain some bugs or may not work correctly

Python JavaScript Java Go C
import random

def is_sorted(arr):
	for i in range(len(arr) - 1):
		if arr[i] > arr[i + 1]:
			return False
	return True

def bogosort(arr):
	while not is_sorted(arr):
		random.shuffle(arr)
	return arr
function isSorted(arr) {
	for (let i = 0; i < arr.length - 1; i++) {
		if (arr[i] > arr[i + 1]) return false;
	}
	return true;
}

function bogosort(arr) {
	while (!isSorted(arr)) {
		for (let i = arr.length - 1; i > 0; i--) {
			const j = Math.floor(Math.random() * (i + 1));
			[arr[i], arr[j]] = [arr[j], arr[i]];
		}
	}
	return arr;
}
import java.util.Random;

public static boolean isSorted(int[] arr) {
	for (int i = 0; i < arr.length - 1; i++) {
		if (arr[i] > arr[i + 1]) return false;
	}
	return true;
}

public static void bogosort(int[] arr) {
	Random rand = new Random();
	while (!isSorted(arr)) {
		for (int i = 0; i < arr.length; i++) {
			int j = rand.nextInt(arr.length);
			int temp = arr[i];
			arr[i] = arr[j];
			arr[j] = temp;
		}
	}
}
import "math/rand"

func isSorted(arr []int) bool {
	for i := 0; i < len(arr)-1; i++ {
		if arr[i] > arr[i+1] {
			return false
		}
	}
	return true
}

func bogosort(arr []int) {
	for !isSorted(arr) {
		rand.Shuffle(len(arr), func(i, j int) {
			arr[i], arr[j] = arr[j], arr[i]
		})
	}
}
#include <stdlib.h>
#include <stdbool.h>

bool isSorted(int arr[], int n) {
	for (int i = 0; i < n - 1; i++) {
		if (arr[i] > arr[i + 1]) return false;
	}
	return true;
}

void bogosort(int arr[], int n) {
	while (!isSorted(arr, n)) {
		for (int i = 0; i < n; i++) {
			int j = rand() % n;
			int temp = arr[i];
			arr[i] = arr[j];
			arr[j] = temp;
		}
	}
}
light dark