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