In this programming exercise you will create an algorithm for solving the following version of the m Smallest Numbers problem. Instead of just returning the m smallest values as in homework 1, you want to return a list of the positions where the m smallest values are located without changing the original array.
Your algorithm should meet the following specifications:
mSmallest( L[1..n], m )
Pre: L is a list of distinct integer values. n is the number of elements in the list. 0 < m = n
Post: A list [p1, p2, ..., pm] has been returned where pj is the position of the jth smallest element of L. The original list L has not been changed.
Determine the time complexity and space complexity of your algorithm.
Use C++, Java or Python to implement your algorithm. Your program should:
prompt the user to enter the list of numbers
prompt the user to enter the value for m
print a list of the positions where the m smallest values are located.
You may assume that the elements of the list are unique.
Turn in your algorithm and your complexity analysis