Skip to content

Commit 124b434

Browse files
committed
Added rust version of bogo sort
1 parent 3ef05bf commit 124b434

File tree

3 files changed

+38
-0
lines changed

3 files changed

+38
-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: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// Submitted by jess 3jane
2+
3+
extern crate rand;
4+
5+
fn shuffle(arr : &mut Vec<i32>) {
6+
for i in 0..arr.len() {
7+
let t = arr[i];
8+
let r : usize = rand::random::<usize>() % arr.len();
9+
arr[i] = arr[r];
10+
arr[r] = t;
11+
}
12+
}
13+
14+
fn is_sorted(arr : &Vec<i32>) -> bool {
15+
for i in 1..arr.len() {
16+
if arr[i-1] > arr[i] {
17+
return false;
18+
}
19+
}
20+
true
21+
}
22+
23+
fn bogo_sort(arr : &mut Vec<i32>) {
24+
while !is_sorted(arr) {
25+
shuffle(arr)
26+
}
27+
}
28+
29+
fn main() {
30+
let mut v = vec!(1,2,3,4,5);
31+
shuffle(&mut v);
32+
println!("Original array: {:?}", v);
33+
bogo_sort(&mut v);
34+
println!("Sorted array: {:?}", v);
35+
}

0 commit comments

Comments
 (0)