DSA/algorithms/Ruby/Arrays/reverse_array.rb

25 lines
744 B
Ruby

# frozen_string_literal: true
# Description: This program reverses array elements by swapping the first half part of the array
# Time Complexity : O(n/2), where n is the array size
# Auxiliary Space : O(1)
module Arrays
def self.reverse_array(arr)
n = arr.length
mid = n / 2
(0...mid).each { |i| arr[i], arr[n - i - 1] = arr[n - i - 1], arr[i] }
arr
end
end
RSpec.describe Arrays do
describe '.reverse_array' do
it 'reverses the elements of an array' do
expect(Arrays.reverse_array([1, 2, 3, 4, 5])).to eq([5, 4, 3, 2, 1])
expect(Arrays.reverse_array([1, 2, 3, 4])).to eq([4, 3, 2, 1])
expect(Arrays.reverse_array([1])).to eq([1])
expect(Arrays.reverse_array([])).to eq([])
end
end
end