From ea090d16674cf575e970c952b9bb6be71f4afefa Mon Sep 17 00:00:00 2001 From: Laurent Kretz Date: Tue, 12 Apr 2016 20:42:39 +0200 Subject: [PATCH 1/2] exercice done --- bubblesort.rb | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 bubblesort.rb diff --git a/bubblesort.rb b/bubblesort.rb new file mode 100644 index 0000000..9133c0b --- /dev/null +++ b/bubblesort.rb @@ -0,0 +1,29 @@ +sequence = [5, 4, 3, 2, 1, 0] +swaps = 0 +iterations = 0 +# Your Code Here +i = 0 + +while i < sequence.size do + iterations += 1 + if sequence[i+1].nil? + break + elsif sequence[i] > sequence[i+1] + temp_var = sequence[i] + sequence[i] = sequence[i+1] + sequence[i+1] = temp_var + if i > 0 + i -= 1 + else + i = 0 + end + swaps += 1 + else + i += 1 + end +end + + +puts "Final result: #{sequence}" +puts "Swaps: #{swaps}" +puts "Iterations: #{iterations}" From e3db52cb35594f0a5a5b80f65faa9e19bdaa5298 Mon Sep 17 00:00:00 2001 From: edouard winia Date: Tue, 12 Apr 2016 22:23:38 +0200 Subject: [PATCH 2/2] challenge 2 done without tests --- array_extension.rb | 19 +++++++++++++++ bubblesort.rb | 58 +++++++++++++++++++++++++++------------------- 2 files changed, 53 insertions(+), 24 deletions(-) create mode 100644 array_extension.rb diff --git a/array_extension.rb b/array_extension.rb new file mode 100644 index 0000000..8b60952 --- /dev/null +++ b/array_extension.rb @@ -0,0 +1,19 @@ +require_relative "bubblesort" + +class Array + def bubble_sort! + BubbleSort.sort!(self) + end + + def bubble_sort + BubbleSort.sort(self) + end +end + + +a = [4, 3, 5, 0, 1].bubble_sort! + +a = [4, 3, 5, 0, 1] +a.bubble_sort! + +p a diff --git a/bubblesort.rb b/bubblesort.rb index 9133c0b..477141e 100644 --- a/bubblesort.rb +++ b/bubblesort.rb @@ -1,29 +1,39 @@ -sequence = [5, 4, 3, 2, 1, 0] -swaps = 0 -iterations = 0 -# Your Code Here -i = 0 - -while i < sequence.size do - iterations += 1 - if sequence[i+1].nil? - break - elsif sequence[i] > sequence[i+1] - temp_var = sequence[i] - sequence[i] = sequence[i+1] - sequence[i+1] = temp_var - if i > 0 - i -= 1 - else - i = 0 +class BubbleSort + def self.sort!(sequence) + swaps = 0 + iterations = 0 + i = 0 + while i < sequence.size do + iterations += 1 + if sequence[i+1].nil? + break + elsif sequence[i] > sequence[i+1] + temp_var = sequence[i] + sequence[i] = sequence[i+1] + sequence[i+1] = temp_var + if i > 0 + i -= 1 + else + i = 0 + end + swaps += 1 + else + i += 1 + end end - swaps += 1 - else - i += 1 + end + + def self.sort(sequence) + sequence_copy = sequence.dup + self.sort!(sequence_copy) + return sequence_copy end end +# a = [4, 3, 5, 0, 1] +# BubbleSort.sort(a) +# puts "Final result: #{a}" -puts "Final result: #{sequence}" -puts "Swaps: #{swaps}" -puts "Iterations: #{iterations}" +# puts "Final result: #{sequence}" +# puts "Swaps: #{swaps}" +# puts "Iterations: #{iterations}"