Bogo Sort
Bogo Sort :
Author(s) : H. Seward Date : 1956Bogo 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
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;
}
}
}