package Sorts; import java.util.Random; /** * * @author Podshivalov Nikita (https://github.com/nikitap492) * * @see SortAlgorithm * */ public class BogoSort implements SortAlgorithm { private static final Random random = new Random(); private static > boolean isSorted(T array[]){ for(int i = 0; i void nextPermutation(T array[]){ int length = array.length; for (int i = 0; i < array.length; i++) { int randomIndex = i + random.nextInt(length - i); SortUtils.swap(array, randomIndex, i); } } public > T[] sort(T array[]) { while(!isSorted(array)){ nextPermutation(array); } return array; } // Driver Program public static void main(String[] args) { // Integer Input Integer[] integers = {4, 23, 6, 78, 1, 54, 231, 9, 12}; BogoSort bogoSort = new BogoSort(); // print a sorted array SortUtils.print(bogoSort.sort(integers)); // String Input String[] strings = {"c", "a", "e", "b","d"}; SortUtils.print(bogoSort.sort(strings)); } }