diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..0522696 Binary files /dev/null and b/.DS_Store differ diff --git a/README.md b/README.md index dc1a8aa..9476b02 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ # assignment_sort Insertion and Merge Sort assignment + +DAVID WIESENBERG diff --git a/bubble_sort.rb b/bubble_sort.rb new file mode 100644 index 0000000..8cb22ce --- /dev/null +++ b/bubble_sort.rb @@ -0,0 +1,33 @@ +# Implementing Sorting Algorithm + +# Warmup: Bubble Sort + +def bubble_sort(array_2) + loop do + swapped = false + (0..array_2.length-2).each do |i| + if array_2[i] > array_2[i+1] + temp = array_2[i] + array_2[i] = array_2[i+1] + array_2[i+1] = temp + swapped = true + end + end + break unless swapped + end + puts "SORTED array_2 = #{array_2}\n\n" +end + + + + +bubble_sort([1, 7, 2, 5]) + +bubble_sort([1, 3, 7, 2, 5]) + +bubble_sort([1, 3, 7, 7, 2, 5]) + +bubble_sort([1, 3, 7, 2, 2, 5]) + +bubble_sort([1, -3, 7, 2, -2, -5, 10]) + diff --git a/insertion_sort.rb b/insertion_sort.rb new file mode 100644 index 0000000..5ac7f19 --- /dev/null +++ b/insertion_sort.rb @@ -0,0 +1,25 @@ +# Implementing Sorting Algorithm + +# Warmup: Insertion Sort + +def insertion_sort(array_1) + (0..array_1.length-2).each do |i| + value = array_1[i+1] + while (i >= 0 && array_1[i] > value) + array_1[i+1] = array_1[i] + i -= 1 + end + array_1[i+1] = value + end + puts "SORTED array_1 = #{array_2}\n\n" +end + + +insertion_sort([1, 3, 7, 2, 5]) + +insertion_sort([1, 3, 7, 7, 2, 5]) + +insertion_sort([1, 3, 7, 2, 2, 5]) + +insertion_sort([1, -3, 7, 2, -2, -5, 10]) + diff --git a/merge_sort.rb b/merge_sort.rb new file mode 100644 index 0000000..f9cff02 --- /dev/null +++ b/merge_sort.rb @@ -0,0 +1,34 @@ +# Implementing Sorting Algorithm + +# Merge Sort + +def merge_sort(array) + return array if array.length == 1 + middle = array.length/2 + merge merge_sort(array[0..middle-1]), merge_sort(array[middle..-1]) +end + +def merge(left, right) + result = [] + until left.length == 0 || right.length == 0 do + result << (left.first <= right.first ? left.shift : right.shift) + end + result + left + right +end + + + + + +merge_sort([1, 3, 7, 2, 5]) + puts "merge_sort([1, 3, 7, 2, 5]) = #{merge_sort([1, 3, 7, 2, 5])}" + +merge_sort([1, 3, 7, 7, 2, 5]) + puts "merge_sort([1, 3, 7, 7, 2, 5]) = #{merge_sort([1, 3, 7, 7, 2, 5])}" + +merge_sort([1, 3, 7, 2, 2, 5]) + puts "merge_sort([1, 3, 7, 2, 2, 5]) = #{merge_sort([1, 3, 7, 2, 2, 5])}" + +merge_sort([1, -3, 7, 2, -2, -5, 10]) + puts "merge_sort([1, -3, 7, 2, -2, -5, 10]) = #{merge_sort([1, -3, 7, 2, -2, -5, 10])}" +