Skip to main content

Selection sort in ruby

Ruby program for Selection sort. Here more solutions.

#  Ruby program for selection sort
class MySort 
	#  Swap the array element
	def swap(arr, x, y) 
		#  x and y are index of array
		temp = arr[x]
		arr[x] = arr[y]
		arr[y] = temp
	end

	def selectionSort(arr, n) 
		min = 0
		i = 0
		#  Execute loop from 0..n
		while (i < n) 
			#  Get current index
			min = i
			j = i + 1
			while (j < n) 
				if (arr[min] > arr[j]) 
					#  Get the minimum element index
					min = j
				end

				j += 1
			end

			if (i != min) 
				#  Swap minimum element at i index
				self.swap(arr, i, min)
			end

			i += 1
		end

	end

	#  Display array elements
	def display(arr, n) 
		i = 0
		while (i < n) 
			#  Display element value
			print("  ", arr[i])
			i += 1
		end

		print("\n")
	end

end

def main() 
	task = MySort.new()
	#  Array of integer elements
	arr = [8, 2, 3, 8, 1, 3, 73, 121, 54, 23, 84, 13, 67, 23, 52]
	#  Get the size of array
	n = arr.length
	print(" Before Sort :\n")
	task.display(arr, n)
	#  Test
	task.selectionSort(arr, n)
	print(" After Sort :\n")
	task.display(arr, n)
end

main()

Output

 Before Sort :
  8  2  3  8  1  3  73  121  54  23  84  13  67  23  52
 After Sort :
  1  2  3  3  8  8  13  23  23  52  54  67  73  84  121




Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment