From c2da90822c3a7d76cc2d0e1f2ff589f29733f9cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?= Date: Sun, 27 Aug 2017 13:27:35 +0200 Subject: [PATCH] feat: add bubblesort --- Cargo.lock | 4 ++++ src/algorithms/bubblesort.rs | 18 ++++++++++++++++++ src/algorithms/mod.rs | 6 ++++++ src/main.rs | 11 +++++++++-- 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 Cargo.lock create mode 100644 src/algorithms/bubblesort.rs create mode 100644 src/algorithms/mod.rs diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..76251c9 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,4 @@ +[root] +name = "sorting" +version = "0.1.0" + diff --git a/src/algorithms/bubblesort.rs b/src/algorithms/bubblesort.rs new file mode 100644 index 0000000..83b2303 --- /dev/null +++ b/src/algorithms/bubblesort.rs @@ -0,0 +1,18 @@ +use algorithms::Algorithm; + +pub struct Bubblesort; + +impl Algorithm for Bubblesort { + fn sort(mut vector: Vec) -> Vec { + for i in 0..(vector.len()) { + for j in 0..(vector.len() - i - 1) { + if vector[j] > vector[j + 1] { + let tmp = vector[j]; + vector[j] = vector[j + 1]; + vector[j + 1] = tmp; + } + } + } + return vector; + } +} \ No newline at end of file diff --git a/src/algorithms/mod.rs b/src/algorithms/mod.rs new file mode 100644 index 0000000..7f79440 --- /dev/null +++ b/src/algorithms/mod.rs @@ -0,0 +1,6 @@ +pub trait Algorithm { + fn sort(vector: Vec) -> Vec; +} + + +pub mod bubblesort; \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index e7a11a9..352be4d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,10 @@ +mod algorithms; + +use algorithms::bubblesort::Bubblesort; +use algorithms::Algorithm; + fn main() { - println!("Hello, world!"); -} + let unsorted : Vec = vec![2498,29687,24,5,94545,8,51,152,48,871,5]; + let sorted = Bubblesort::sort(unsorted); + println!("{:?}", sorted); +} \ No newline at end of file