diff --git a/Sorts/BogoSort.java b/Sorts/BogoSort.java new file mode 100644 index 000000000..33787178f --- /dev/null +++ b/Sorts/BogoSort.java @@ -0,0 +1,68 @@ +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