in JAVA
Below is how the filenames are represented ARRAY]]=[50,11,33,21,40,50,40,40,21] Below is the expected output after de-duplication ARRAY ]=[11,21,33,40,50] Also, take a look again at the input array and be reminded that the input array is not sorted ! Further, please be reminded that you cannot use library functions to either sort and or perform the de-duplication operation. Doing so would straight up result in a score of Zero 1 (1) [100 points] Implement the function in such a way that your solution solves the problem with O(nlogA^nn)) time complexity overall but stays within the bounds of O(1) space complexity. Here, n is the length of the list of input integers (array). I believe the sorting routine that can be used here is Quick Sort. Please state as code comment which sorting routine you are using, sort the array with that algorithm and solve the de-duplication problem thereafter. De-duplication part of the solution in itself must adhere to O(n) time and O(1) space bounds. However, at this stage of the course we will not be considering any memory used by recursion. Very Very Importamt : (1) Your code should be well commented which explains all the steps you are performing to solve the problem. A submission without code comments will immediately be deducted 15 points 1 (2) As a comment in your code, please write your test-cases on how you would test your solution assumptions and hence your code. A subrmission without test cases will immediately be deducted 15 points ! Examplo of cases to be tested for are like : What if the array input which is expected does not exist - that is, input is a null. How should your code handle such in situation ? Maybe output some message like "Null input case, so no output"? What if the length of the array is one ?.. so on and 5 forth. Please Remember : Although, written as comments - You will address your tent enses in the form of code and not prose : )