bozosort


See On Github

Data

Contributor

Generic placeholder thumbnail

by jcla1

in go

Source Code

package bozosort

import "math/rand"

func Bozosort(arr []int) []int {
    for !isSorted(arr) {
        a, b := rand.Intn(len(arr)), rand.Intn(len(arr))
        arr[a], arr[b] = arr[b], arr[a]
    }

    return arr
}

func isSorted(arr []int) bool {
    for i := 1; i < len(arr); i++ {
        if arr[i-1] > arr[i] {
            return false
        }
    }

    return true
}
package bozosort

import "testing"

func TestBozosort(t *testing.T) {
    arrs := [][]int{[]int{-2, 1, -3, 4, -1, 2, 1, -5, 4}, []int{2, 3, 7, -5, -1, 4, -10}}

    var result []int

    for _, arr := range arrs {
        result = Bozosort(arr)
        if !isSorted(result) {
            t.Errorf("Bozosort(%v) = %v", arr, result)
        }
    }
}