From 0a4fbaf0fc4328a5b96dd44907d202926bc4b98f Mon Sep 17 00:00:00 2001 From: KrishnaVipul14 Date: Sat, 16 May 2026 23:37:37 +0530 Subject: [PATCH] Javascript_shuffle_issue_fixed --- Sorts/BogoSort.js | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/Sorts/BogoSort.js b/Sorts/BogoSort.js index eeb4f7feeb..c0eda54892 100644 --- a/Sorts/BogoSort.js +++ b/Sorts/BogoSort.js @@ -3,36 +3,43 @@ */ export function isSorted(array) { const length = array.length + for (let i = 0; i < length - 1; i++) { if (array[i] > array[i + 1]) { return false } } + return true } /** - * Shuffles the given array randomly in place. + * Shuffles the given array randomly in place + * using the unbiased Fisher–Yates algorithm. */ function shuffle(array) { - for (let i = array.length - 1; i; i--) { - const m = Math.floor(Math.random() * i) - const n = array[i - 1] - array[i - 1] = array[m] - array[m] = n + for (let i = array.length - 1; i > 0; i--) { + // Select random index from the inclusive range [0, i] + const j = Math.floor(Math.random() * (i + 1)) + + // Swap elements + ;[array[i], array[j]] = [array[j], array[i]] } } /** * Implementation of the bogosort algorithm. * - * This sorting algorithm randomly rearranges the array until it is sorted. + * This sorting algorithm randomly rearranges the array + * until it is sorted. * - * For more information see: https://en.wikipedia.org/wiki/Bogosort + * For more information see: + * https://en.wikipedia.org/wiki/Bogosort */ export function bogoSort(items) { while (!isSorted(items)) { shuffle(items) } + return items -} +} \ No newline at end of file