Bogo sort algorithm

Hi, today, I’m going to talk about ridiculous sorting algorithms which are called Bogo sort

Definition of Bogo sort

Bogo sort: called also stupid sort, slow sort, monkey sort is a type of sorting algorithms, it works by shuffling randomly a…


This content originally appeared on DEV Community and was authored by Aya Bouchiha

Hi, today, I'm going to talk about ridiculous sorting algorithms which are called Bogo sort

Definition of Bogo sort

Bogo sort: called also stupid sort, slow sort, monkey sort is a type of sorting algorithms, it works by shuffling randomly array elements until the array is sorted.

Time & Space complexity

Time complexity:

  • Best case: O(n)
  • Average case: O(n!)
  • Worst case: infinte ( because there is no guarantee that a randome suffling will ever produce a sorted array )

The space complexity of Bogo sort is O(1)

Implementation of Bogo sort using Python

for getting a random integer to shuffle the array we need to import randint from the random module

from random import randint

Shuffle function

def shuffle(arr: list):
    for i in range(len(arr)):
        randomInt = randint(0, len(arr) - 1)
        arr[randomInt], arr[i] = arr[i], arr[randomInt]

isSorted function

we should implement a function that checks if the array is sorted, if the function returned True, It means the array is sorted and we need to break the loop, else (returned False) we'll shuffle it again until the array will be sorted.

def isSorted(arr: list) -> bool:
    for i in range(len(arr) - 1):
        if arr[i] > arr[i + 1]:
            return False
    return True

Bogo sort

this function shuffles the array randomly until it is sorted.

def BogoSort(arr: list) -> list:
    # while the array is not sorted
    while not isSorted(arr):
        shuffle(arr)
    # if the array is sorted
    return arr

Final Code

from random import randint

def isSorted(arr: list) -> bool:
    for i in range(len(arr) - 1):
        if arr[i] > arr[i + 1]:
            return False
    return True

def shuffle(arr: list)  :
    for i in range(len(arr)):
        randomInt = randint(0, len(arr) - 1)
        arr[randomInt], arr[i] = arr[i], arr[randomInt]

def BogoSort(arr: list) -> list:
    while not isSorted(arr):
        shuffle(arr)
    return arr

Have an amazing day!

References and useful resources

#day_21


This content originally appeared on DEV Community and was authored by Aya Bouchiha


Print Share Comment Cite Upload Translate Updates
APA

Aya Bouchiha | Sciencx (2021-07-03T22:31:26+00:00) Bogo sort algorithm. Retrieved from https://www.scien.cx/2021/07/03/bogo-sort-algorithm/

MLA
" » Bogo sort algorithm." Aya Bouchiha | Sciencx - Saturday July 3, 2021, https://www.scien.cx/2021/07/03/bogo-sort-algorithm/
HARVARD
Aya Bouchiha | Sciencx Saturday July 3, 2021 » Bogo sort algorithm., viewed ,<https://www.scien.cx/2021/07/03/bogo-sort-algorithm/>
VANCOUVER
Aya Bouchiha | Sciencx - » Bogo sort algorithm. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2021/07/03/bogo-sort-algorithm/
CHICAGO
" » Bogo sort algorithm." Aya Bouchiha | Sciencx - Accessed . https://www.scien.cx/2021/07/03/bogo-sort-algorithm/
IEEE
" » Bogo sort algorithm." Aya Bouchiha | Sciencx [Online]. Available: https://www.scien.cx/2021/07/03/bogo-sort-algorithm/. [Accessed: ]
rf:citation
» Bogo sort algorithm | Aya Bouchiha | Sciencx | https://www.scien.cx/2021/07/03/bogo-sort-algorithm/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.