How to resolve the algorithm Sorting algorithms/Bogosort step by step in the Nim programming language
Published on 12 May 2024 09:40 PM
How to resolve the algorithm Sorting algorithms/Bogosort step by step in the Nim programming language
Table of Contents
Problem Statement
Bogosort a list of numbers.
Bogosort simply shuffles a collection randomly until it is sorted.
"Bogosort" is a perversely inefficient algorithm only used as an in-joke.
Its average run-time is O(n!) because the chance that any given shuffle of a set will end up in sorted order is about one in n factorial, and the worst case is infinite since there's no guarantee that a random shuffling will ever produce a sorted sequence.
Its best case is O(n) since a single pass through the elements may suffice to order them.
Pseudocode:
The Knuth shuffle may be used to implement the shuffle part of this algorithm.
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Sorting algorithms/Bogosort step by step in the Nim programming language
Source code in the nim programming language
import random
randomize()
proc isSorted[T](s: openarray[T]): bool =
var last = low(T)
for c in s:
if c < last:
return false
last = c
return true
proc bogoSort[T](a: var openarray[T]) =
while not isSorted a: shuffle a
var a = @[4, 65, 2, -31, 0, 99, 2, 83, 782]
bogoSort a
echo a
You may also check:How to resolve the algorithm File size distribution step by step in the Ada programming language
You may also check:How to resolve the algorithm Terminal control/Cursor movement step by step in the AutoHotkey programming language
You may also check:How to resolve the algorithm Exceptions step by step in the HolyC programming language
You may also check:How to resolve the algorithm Unicode strings step by step in the AWK programming language
You may also check:How to resolve the algorithm Phrase reversals step by step in the Ruby programming language