COSC 311 Homework 9/27/2018 Test Big Oh for queue ops Distributed: R 9/27/2018 Due: R 10/4/2018 In class on 9/25, I averred that to insert or delete one element to a queue of size n was O(1), and *not* O(n). This homework will test that assertion. Create and populate a circular queue, implemented on 1D array, with n elements. Measure the time it takes to insert/delete K operations. Fixing K, vary the size n. Graph the times to execute K queue operations versus n (the size of the array). If I am right (and I am) the time to perform K queue operations will not vary based on the size of the queue. Using your timing results and the resulting graph, make a statement, that you justify, about whether or not your result support O(1) or O(n) for a queue operation. Constraints: (1) You must determine the value K (number of queue operations) dependent on your computer's performance. A reasonable first guess is K=10,000. The longest time you should need to execute should be approximately something between 100 and 300 seconds. (2) You will determine, based on your computer's performance, the various values of n for the size of the queue. These values must give a reasonable spread of timing results. You will need at least 6 values for n. (3) The queue operations, insert and delete, must be in random order, with equal probability (the probability of insert is 50%, the probability of delete is 50%). (4) Once you have an idea of the values of n and the value of K, then use the same 1D array size for all experiments. Allocate 1.5 times the space for the largest value of n to avoid possible queue overflow. (5) The size of the 1D array must be the same for all experiments. (6) Appropriately modify the pseudo-code given in https://emunix.emich.edu/~haynes/CommonCourseMaterial/311/circularQueue.txt Do not use a Java supplied collection such as List, Queue, etc. Do not cannabalize code from another source -- even if cited correctly. (7) Write one program for all the experiments. Hardcode the values of n. (8) Obviously, you must time *only* the queue operations. You should include tests for isEmpty() or isFull() in the timing. (9) Also, the value of the actual data element is not used; therefore you shouldn't generate a random value for the data. Points taken off for: (1) Doesn't work (2) Failure to meet style constraints (3) Failure to meet coding constraints (4) Code does not match output (5) Ugly or difficult to understand code (6) Results: sloppy graph sloppy, weasely, or wrong concluding statement Turn in: -- Hard copy of code -- Header must include your last name, homework identifier (hw0927), URL of source code. -- Screen shot showing timing results -- Graph of timing results -- Concluding statement: Your results support what Big Oh function and why.