mirror of
https://github.com/TheAlgorithms/Ruby
synced 2025-01-28 19:58:20 +01:00
fix syntax of Sorting
This commit is contained in:
parent
b23765e4c8
commit
c7177045c8
4 changed files with 35 additions and 36 deletions
|
@ -1,16 +1,16 @@
|
|||
class Array
|
||||
def sorted?
|
||||
### goes thru array and checks if all elements are in order
|
||||
for i in 1...self.length
|
||||
return false if self[i-1] > self[i]
|
||||
end
|
||||
def sorted?
|
||||
### goes thru array and checks if all elements are in order
|
||||
for i in 1...self.length
|
||||
return false if self[i-1] > self[i]
|
||||
end
|
||||
return true
|
||||
end
|
||||
def bogosort
|
||||
### randomly shuffles until sorted
|
||||
self.shuffle! until self.sorted?
|
||||
return self #return sorted array
|
||||
end
|
||||
def bogosort
|
||||
### randomly shuffles until sorted
|
||||
self.shuffle! until self.sorted?
|
||||
return self #return sorted array
|
||||
end
|
||||
end
|
||||
|
||||
puts "Enter a list of numbers seprated by space"
|
||||
|
|
|
@ -17,6 +17,6 @@ def bubble_sort(array)
|
|||
end
|
||||
puts "Enter a list of numbers seprated by space"
|
||||
|
||||
list = gets
|
||||
list = gets
|
||||
bubble_sort(list)
|
||||
print list
|
|
@ -2,32 +2,31 @@
|
|||
Algorithm: Heap-Sort
|
||||
Time-Complexity: O(nlogn)
|
||||
"""
|
||||
def heap_sort(array)
|
||||
array_size = array.size
|
||||
adjusted_array = [nil] + array
|
||||
(array_size / 2).downto(1) do |i|
|
||||
adjusted_down(adjusted_array, i, array_size)
|
||||
end
|
||||
while array_size > 1
|
||||
adjusted_array[1], adjusted_array[array_size] = adjusted_array[array_size], adjusted_array[1]
|
||||
array_size -= 1
|
||||
adjusted_down(adjusted_array, 1, array_size)
|
||||
end
|
||||
adjusted_array.drop(1)
|
||||
end
|
||||
def heap_sort(array)
|
||||
array_size = array.size
|
||||
adjusted_array = [nil] + array
|
||||
(array_size / 2).downto(1) do |i|
|
||||
adjusted_down(adjusted_array, i, array_size)
|
||||
end
|
||||
while array_size > 1
|
||||
adjusted_array[1], adjusted_array[array_size] = adjusted_array[array_size], adjusted_array[1]
|
||||
array_size -= 1
|
||||
adjusted_down(adjusted_array, 1, array_size)
|
||||
end
|
||||
adjusted_array.drop(1)
|
||||
end
|
||||
|
||||
#Method to adjust heap in downward manner
|
||||
def adjusted_down(adjusted_array, parent, limit)
|
||||
top = adjusted_array[parent]
|
||||
while (child = 2 * parent) <= limit
|
||||
child += 1 if child < limit and adjusted_array[child] < adjusted_array[child + 1]
|
||||
break if top >= adjusted_array[child]
|
||||
adjusted_array[parent] = adjusted_array[child]
|
||||
parent = child
|
||||
end
|
||||
adjusted_array[parent] = top
|
||||
end
|
||||
|
||||
def adjusted_down(adjusted_array, parent, limit)
|
||||
top = adjusted_array[parent]
|
||||
while (child = 2 * parent) <= limit
|
||||
child += 1 if child < limit and adjusted_array[child] < adjusted_array[child + 1]
|
||||
break if top >= adjusted_array[child]
|
||||
adjusted_array[parent] = adjusted_array[child]
|
||||
parent = child
|
||||
end
|
||||
adjusted_array[parent] = top
|
||||
end
|
||||
|
||||
#Code for testing heapsort
|
||||
array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15].shuffle
|
||||
|
|
|
@ -12,6 +12,6 @@ def insertion_sort(array)
|
|||
end
|
||||
puts "Enter a list of numbers seprated by space"
|
||||
|
||||
list = gets
|
||||
list = gets
|
||||
insertion_sort(list)
|
||||
print list
|
Loading…
Add table
Reference in a new issue