Here are the class definitions of Node and List that impleme
Here are the class definitions of Node and List that implement a linked list. class Node {private Node next; private int key; Node (Node nxt, int keyValue);//constructor Node getNext(); int getKey(); void put(Next Node nxt);} class List {//assume the class does not use a dummy Node private Node head; List ();//constructor boolean exists(int ky);//returns true if v is in the list void insertAtHead(int ky);//inserts at the beginning of the list void insertAtTail(int ky);//inserts at the end of the list int removeFromHead ();//Returns -1 if the list is empty void delete(int ky)//delete the element or do nothing if v doesn\'t exist int removesmallest ();//removes the Node containing the smallest key//and returns that key. Returns -1 if the list is empty.//could be duplicate entries, so remove the first//int remove Largest ();//removes the Node containing the largest key//and returns that key. Returns -1 if the list is empty.//Could be duplicate entries, so remove the first int maxElement ();//calls the private version, doesn\'t delete the Node int sum ();//calls the private version int length ();//calls the private version private int maxElement (Node x); private int sum (Node x); private int length Node x);} Algorithm C has running time T_c(n) = O(n), algorithm D has running time T_D(n) = O(log n), and Algorithm E has running time T_E(n) = O(squareroot(n)). Which algorithm is the fastest and which is the slowest for large n?
Solution
Let n=1000
Algorithm C time complexity is O(n)
Hence time taken by C is 1000s;
Algorithm D time complexity is O(logn)
Hence time taken by D is log1000=3s;
Algorithm E time complexity is O(n)
Hence time taken by E is 1000=31.622776602s;
Hence from above we can see that Algorithm d is fast as it takes less time and Algorithm c is slowest as it takes more time.
