Lets say we have 9 numbers from 1 to 10 and one number is missing. We
hv a RAM which can accomodate only 3 nos.
9,6,7,4,3,2,1,5,10
So, we split the file into 3 smaller files each containing 3 nos.
File1: 9,6,7
File2: 4,3,2
File3: 1,5,10

Now take each file into memory one by one and min heapify
them and put them back in the memory.
File1: 6,9,7
File2: 2,3,4
File3: 1,5,10
The 1st element in each file is min in each file.

Now make a file temp containing the 1st element of each file and
remove the 1st element from the files 1,2 and 3.Min heapify each
file..
Temp: 1,6,2
File1: 7,9
File2:  3,4
File3: 5,10

Now remove 1 from file Temp and take element from File3 because 1
belonged to File3 originally. Again min Heapify them.
Temp: 2,6,5
File1: 7,9
File2:  3,4
File3: 10

Now remove 2
Temp: 3,5,6
File1: 7,9
File2:  4
File3: 10

Now remove 3
Temp: 4,6,5
File1: 7,9
File2:
File3: 10

Now going on this way we will find that after we remove 7, we could
not find 8. So, 8 is the missing no.


Ankit Sambyal
BITS Pilani



On Fri, Jun 10, 2011 at 12:11 AM, varun pahwa <varunpahwa2...@gmail.com> wrote:
> can anyone explain "Since there
> are less than 2^32 numbers in the file there is bound to be one number
> in the array that is less than 2^16." in dumanshu's solution.
>
> On Fri, Jun 10, 2011 at 12:39 PM, varun pahwa <varunpahwa2...@gmail.com>
> wrote:
>>
>> @ankit :please explain by taking an example.
>>
>> On Fri, Jun 10, 2011 at 12:13 PM, Vetri Balaji <vetribal...@gmail.com>
>> wrote:
>>>
>>> @ankit: pls explain the time complexity..
>>> i dont think its O(log n)
>>>
>>> On Thu, Jun 9, 2011 at 11:57 PM, ankit sambyal <ankitsamb...@gmail.com>
>>> wrote:
>>>>
>>>> @Dumanshu:  In each iteration, we r removing the smallest number. If
>>>> at any iteration we can't find the next smallest no., it means that
>>>> no. is missing.....
>>>>
>>>>
>>>>
>>>> On Thu, Jun 9, 2011 at 10:54 AM, Dumanshu <duman...@gmail.com> wrote:
>>>> > hey... we have 300 million (9- digit) numbers. So we have to print a
>>>> > number which isn't already there in the file.
>>>> > We are not given that number beforehand. You are saying to check "u
>>>> > are going to check whether a number N exist ".
>>>> >
>>>> > On Jun 9, 4:46 pm, radha krishnan <radhakrishnance...@gmail.com>
>>>> > wrote:
>>>> >> Ma approach is to xor the given number with all numbers in the file
>>>> >> !!
>>>> >> This takes O(n)
>>>> >> I think we cant achieve a complexity <O(n)
>>>> >> we have to scan the file at least once
>>>> >>
>>>> >> Or move to this problem
>>>> >> Instead of a file with numbers
>>>> >> you have a stream of numbers
>>>> >>
>>>> >> Create a Trie and insert every number from the stream by reversing
>>>> >> the
>>>> >> digits of the number
>>>> >> Now u have a Trie (left as 0 bit && right as 1 bit )
>>>> >>
>>>> >> u are going to check whether a number N exist
>>>> >> reverse the bits of N
>>>> >> search for appropriate bit in the Trie
>>>> >> if all bit are matched then there is a number !!
>>>> >> else No
>>>> >>
>>>> >> But Space Complexity Of Trie is high  we need (32 *(O(n)) assuming
>>>> >> each
>>>> >> integer is of 32 bits
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>> >>
>>>> >> On Thu, Jun 9, 2011 at 4:54 PM, Dumanshu <duman...@gmail.com> wrote:
>>>> >> > Given a file containing roughly 300 million social security
>>>> >> > numbers(9-
>>>> >> > digit numbers) find a 9-digit number that isnt there in the file.
>>>> >> > You
>>>> >> > have unlimited drive space but only 2mb of RAM.
>>>> >>
>>>> >> > Solution is as follows:
>>>> >> > In the first step, we build an array of 2^16 integers that is
>>>> >> > initialized to 0 and for every number in the file we take its 16
>>>> >> > most
>>>> >> > significant
>>>> >> > bit to index into this array and increment that number. Since there
>>>> >> > are less than 2^32 numbers in the file there is bound to be one
>>>> >> > number
>>>> >> > in the array that is less than 2^16 . This tells us that there is
>>>> >> > at
>>>> >> > least one number missing among the possible numbers with those
>>>> >> > upper
>>>> >> > bits. In the second pass, we can focus only on the numbers that
>>>> >> > match
>>>> >> > this criterion and use a bit-vector of size 2^16 to identify one of
>>>> >> > the missing numbers.
>>>> >>
>>>> >> > Someone plz explain this solution( may be using some small values
>>>> >> > numbers) or suggest another approach.
>>>> >>
>>>> >> > --
>>>> >> > You received this message because you are subscribed to the Google
>>>> >> > Groups
>>>> >> > "Algorithm Geeks" group.
>>>> >> > To post to this group, send email to algogeeks@googlegroups.com.
>>>> >> > To unsubscribe from this group, send email to
>>>> >> > algogeeks+unsubscr...@googlegroups.com.
>>>> >> > For more options, visit this group at
>>>> >> >http://groups.google.com/group/algogeeks?hl=en.
>>>> >
>>>> > --
>>>> > You received this message because you are subscribed to the Google
>>>> > Groups "Algorithm Geeks" group.
>>>> > To post to this group, send email to algogeeks@googlegroups.com.
>>>> > To unsubscribe from this group, send email to
>>>> > algogeeks+unsubscr...@googlegroups.com.
>>>> > For more options, visit this group at
>>>> > http://groups.google.com/group/algogeeks?hl=en.
>>>> >
>>>> >
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Algorithm Geeks" group.
>>>> To post to this group, send email to algogeeks@googlegroups.com.
>>>> To unsubscribe from this group, send email to
>>>> algogeeks+unsubscr...@googlegroups.com.
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/algogeeks?hl=en.
>>>>
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "Algorithm Geeks" group.
>>> To post to this group, send email to algogeeks@googlegroups.com.
>>> To unsubscribe from this group, send email to
>>> algogeeks+unsubscr...@googlegroups.com.
>>> For more options, visit this group at
>>> http://groups.google.com/group/algogeeks?hl=en.
>>
>>
>>
>> --
>> Varun Pahwa
>> B.Tech (IT)
>> 7th Sem.
>> Indian Institute of Information Technology Allahabad.
>> Ph : 09793899112 ,08011820777
>> Official Email :: rit2008...@iiita.ac.in
>> Another Email :: varunpahwa.ii...@gmail.com
>>
>> People who fail to plan are those who plan to fail.
>>
>
>
>
> --
> Varun Pahwa
> B.Tech (IT)
> 7th Sem.
> Indian Institute of Information Technology Allahabad.
> Ph : 09793899112 ,08011820777
> Official Email :: rit2008...@iiita.ac.in
> Another Email :: varunpahwa.ii...@gmail.com
>
> People who fail to plan are those who plan to fail.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Algorithm Geeks" group.
> To post to this group, send email to algogeeks@googlegroups.com.
> To unsubscribe from this group, send email to
> algogeeks+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/algogeeks?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to