Line 11: Line 11:
  
 
==={{Template:Author|Arjun Suresh|{{arjunweb}} }}===
 
==={{Template:Author|Arjun Suresh|{{arjunweb}} }}===
  Average Instruction execution time
+
  Since we have $logn$ lists we can make a min-heap of $logn$ elements by taking the first element from each of the $logn$ sorted lists. Now, we start deleting the min-element from the heap and put the next element from the sorted list from which that element came. (This identity can be done by making a structure of two values, one for the number and one for the origin sorted list and storing this structure in the heap). In this way each delete and the corresponding insert will take $O(loglogn)$ time as delete in heap is $O(1)$ and inserting an element on a heap of size $n$ is $O(nlogn)$. Now, we have a total of $logn \times $n/logn = n$ elements. So, the total time will be $O(n loglogn)$.
= Average CPU execution time + Average memory access time for each instruction
 
= Average CPU execution time + Average address translation time + Average memory fetch for each instruction + Average page fault time for each instruction
 
= 100 + ((0.9 * 0) + 0.1 * (2 * 150)) + 2*150 + (1/10000) * 8 * 1000
 
[ TLB access time assumed as 0 and 2 page tables needs to be accessed in case of TLB miss as the system uses two-level paging]
 
= 100 + 30 + 300 + 800
 
= 1230 ns
 
  
  

Revision as of 10:00, 24 June 2014

Suppose there are $logn$ sorted lists of $n/logn$ elements each. The time complexity of producing a sorted list of all these elements is: (Hint:Use a heap data structure)

(A) $O(nloglogn)$

(B) $ \Theta(nlogn)$

(C) $\Omega(nlogn)$

(D) $(n^{\frac{3}{2}})$


Solution by Arjun Suresh

Since we have $logn$ lists we can make a min-heap of $logn$ elements by taking the first element from each of the $logn$ sorted lists. Now, we start deleting the min-element from the heap and put the next element from the sorted list from which that element came. (This identity can be done by making a structure of two values, one for the number and one for the origin sorted list and storing this structure in the heap). In this way each delete and the corresponding insert will take $O(loglogn)$ time as delete in heap is $O(1)$ and inserting an element on a heap of size $n$ is $O(nlogn)$. Now, we have a total of $logn \times $n/logn = n$ elements. So, the total time will be $O(n loglogn)$.




blog comments powered by Disqus

Suppose there are $logn$ sorted lists of $n/logn$ elements each. The time complexity of producing a sorted list of all these elements is: (Hint:Use a heap data structure)

(A) $O(nloglogn)$

(B) $ \Theta(nlogn)$

(C) $\Omega(nlogn)$

(D) $(n^{\frac{3}{2}})$


Solution by Arjun Suresh[edit]

Average Instruction execution time 
= Average CPU execution time + Average memory access time for each instruction
= Average CPU execution time + Average address translation time + Average memory fetch for each instruction + Average page fault time for each instruction
= 100 + ((0.9 * 0) + 0.1 * (2 * 150)) + 2*150 + (1/10000) * 8 * 1000 
[ TLB access time assumed as 0 and 2 page tables needs to be accessed in case of TLB miss as the system uses two-level paging]
= 100 + 30 + 300 + 800
= 1230 ns




blog comments powered by Disqus