Skip to content

Commit 548a33c

Browse files
authored
Merge pull request #143 from Jess3Jane/master
Added rust version of bogo sort
2 parents 3ef05bf + 82a8da7 commit 548a33c

File tree

3 files changed

+31
-0
lines changed

3 files changed

+31
-0
lines changed

CONTRIBUTORS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ Gathros
55
Jeremie Gillet (- Jie -)
66
Salim Khatib
77
Hitesh C
8+
Jess 3Jane

chapters/sorting_searching/bogo/bogo_sort.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ In code, it looks something like this:
2727
[import, lang:"haskell"](code/haskell/bogoSort.hs)
2828
{% sample lang="cpp" %}
2929
[import, lang:"c_cpp"](code/c++/bogosort.cpp)
30+
{% sample lang="rs" %}
31+
[import, lang:"rust"](code/rust/bogosort.rs)
3032
{% endmethod %}
3133

3234
That's it.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// Submitted by jess 3jane
2+
3+
extern crate rand;
4+
5+
use rand::{thread_rng, Rng};
6+
7+
fn is_sorted(arr : &[i32]) -> bool {
8+
for i in 1..arr.len() {
9+
if arr[i-1] > arr[i] {
10+
return false;
11+
}
12+
}
13+
true
14+
}
15+
16+
fn bogo_sort(arr : &mut [i32]) {
17+
while !is_sorted(arr) {
18+
thread_rng().shuffle(arr);
19+
}
20+
}
21+
22+
fn main() {
23+
let mut v = vec![1, 2, 3, 4, 5];
24+
thread_rng().shuffle(&mut v);
25+
println!("Original array: {:?}", v);
26+
bogo_sort(&mut v);
27+
println!("Sorted array: {:?}", v);
28+
}

0 commit comments

Comments
 (0)