How to reorder a list according to given indexes in Ruby

1 Answer

0 votes
def printArray(arr) 
    size = arr.length
	i = 0
	while (i < size) 
		print(arr[i], " ")
		i += 1
	end
	print("\n")
end

def reorder(arr, indexes, i) 
    size = arr.length
	if (i < size) 
		data = arr[i]
		reorder(arr, indexes, i + 1)
		arr[indexes[i]] = data
	end
end



arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
indexes = [1, 0, 4, 3, 2, 5, 9, 7, 8, 6]

printArray(arr)
printArray(indexes)

reorder(arr, indexes, 0)
	
printArray(arr)
	
	
	
	
# run:
#
# 1 2 3 4 5 6 7 8 9 10 
# 1 0 4 3 2 5 9 7 8 6 
# 2 1 5 4 3 6 10 8 9 7 
#	

 



answered Nov 29, 2021 by avibootz

Related questions

1 answer 310 views
1 answer 271 views
1 answer 196 views
1 answer 208 views
1 answer 213 views
1 answer 256 views
1 answer 208 views
...