From 8717d61b5988294bf7048d3134d53cfc8dcf5eca Mon Sep 17 00:00:00 2001 From: karimElmougi Date: Thu, 5 Oct 2017 10:37:31 -0400 Subject: [PATCH] Add bogo sort --- Sorts/BogoSort.java | 68 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 Sorts/BogoSort.java diff --git a/Sorts/BogoSort.java b/Sorts/BogoSort.java new file mode 100644 index 00000000..33787178 --- /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