packages feed

tensort-0.1.0.0: src/Data/Tensort/Subalgorithms/Bogosort.hs

module Data.Tensort.Subalgorithms.Bogosort (bogosort, bogosortSeeded) where

import Data.Tensort.Utils.Check (isSorted)
import Data.Tensort.Utils.RandomizeList (randomizeList)
import Data.Tensort.Utils.Types (Sortable (..))

bogosort :: Sortable -> Sortable
bogosort xs = bogosortSeeded xs 143

bogosortSeeded :: Sortable -> Int -> Sortable
bogosortSeeded xs seed
  | isSorted xs = xs
  | otherwise = bogosortSeeded (randomizeList xs seed) (seed + 1)