package Sorts; import java.util.Random; public class BogoSort { private static void swap(T array[], int first, int second){ T randomElement = array[first]; array[first] = array[second]; array[second] = randomElement; } private static > boolean isSorted(T array[]){ for(int i = 0; i 0) return false; } return true; } // Randomly shuffles the array private static void nextPermutation(T array[]){ int length = array.length; Random random = new Random(); for (int i = 0; i < array.length; i++) { int randomIndex = i + random.nextInt(length - i); swap(array, randomIndex, i); } } public static > void bogoSort(T array[]) { while(!isSorted(array)){ nextPermutation(array); } } // Driver Program public static void main(String[] args) { // Integer Input int[] arr1 = {4,23,6,78,1,54,231,9,12}; int last = arr1.length; Integer[] array = new Integer[last]; for (int i=0;i 1 4 6 9 12 23 54 78 231 for(int i=0; i a b c d e for(int i=0; i