@amol :- i don't think this algo would work here
after sorting how would you replace back the original no.s(as no.s are not
0 and 1 in this case)

On Sun, Jul 1, 2012 at 11:08 PM, Amol Sharma <amolsharm...@gmail.com> wrote:

> i think it has been discussed before....nevertheless here is the required
> linear time solution.
>
> first, count the total number 0's and 1's in the array.
>
> let say, total elements are n and there are x zero's.
>
> take count1=0 and count2=x;
>
> traverse through the array :
> for(i=0;i<n;i++)
>         if(arr[i]==0)
>               arr[i]=count1++;
>         else
>               arr[i]=count2++;
>
> let's say array is {1,0,0,0,1,1,1,0,0,1}          n=10,x=5
> count1=0;count2=5
>
> after the traversal it becomes a[]={5,0,1,2,6,7,8,3,4,9}
>
> now sort this array in O(n) like this :
>
> for(j=0;j<=1;j++)
> {
>         for(i=0;i<n;i++)
>         {
>               if(arr[i]!=i)
>                    swap(arr[i],arr[arr[i]]);
>         }
> }
>
> after the array is sorted again traverse the array and set the elements
> from index 0 to x-1 to '0' and rest '1'.
>
>
>
>
>
>
>
>
> --
>
>
> Amol Sharma
> Final Year Student
> Computer Science and Engineering
> MNNIT Allahabad
>
> <http://gplus.to/amolsharma99> 
> <http://twitter.com/amolsharma99><http://in.linkedin.com/pub/amol-sharma/21/79b/507><http://www.simplyamol.blogspot.com/><http://facebook.com/amolsharma99>
>
>
>
>
>
>
> On Fri, Jun 29, 2012 at 9:20 PM, Bhaskar Kushwaha <
> bhaskar.kushwaha2...@gmail.com> wrote:
>
>> @Hassan I think your algo will take time O(n^2) in worst case which
>> occurs when all elements are negative except the last one
>> @everyone Can we solve this problem in linear time?
>>
>>
>> On Fri, Jun 29, 2012 at 9:10 PM, Hassan Monfared <hmonfa...@gmail.com>wrote:
>>
>>> Hi,
>>> this can be done by simple modification in bubble sort :
>>> void inplace_pos_neg(int pdata[],int sz)
>>> {
>>> bool changed=false;
>>>  do
>>> {
>>> changed=false;
>>>  for(int i=1;i<sz;i++)
>>> if(pdata[i-1]>0 && pdata[i]<0)
>>> {
>>>  swap(pdata[i-1], pdata[i]);
>>> changed=true;
>>> }
>>>  }while(changed);
>>> }
>>>
>>> void test_inplace_pos_neg()
>>> {
>>> int a[]={-1,-5,10,11,15,-500,200,-10};
>>>
>>> copy(a,a+sizeof(a)/sizeof(int),ostream_iterator<int>(cout,","));cout<<endl;
>>> inplace_pos_neg(a,sizeof(a)/sizeof(int));
>>>
>>> copy(a,a+sizeof(a)/sizeof(int),ostream_iterator<int>(cout,","));cout<<endl;
>>>
>>> }
>>>
>>>
>>> Regards
>>>
>>> On Fri, Jun 29, 2012 at 7:52 PM, utsav sharma 
>>> <utsav.sharm...@gmail.com>wrote:
>>>
>>>> @bhaskar:- please explain stable sorting algorithm you would use(as
>>>> mainly all of them require extra space)
>>>> @sourabh:- that previous post discussion does't lead to any correct soln
>>>>
>>>> On Fri, Jun 29, 2012 at 8:39 PM, Bhaskar Kushwaha <
>>>> bhaskar.kushwaha2...@gmail.com> wrote:
>>>>
>>>>> @saurabh please provide the link to the post you are mentioning
>>>>>
>>>>> On Fri, Jun 29, 2012 at 8:38 PM, Bhaskar Kushwaha <
>>>>> bhaskar.kushwaha2...@gmail.com> wrote:
>>>>>
>>>>>>  If the order is important then I think we can use any stable sorting
>>>>>> algorithm with the following comparison function
>>>>>>
>>>>>> int compare (int a ,int b)
>>>>>> {
>>>>>> if((a>0&&b>0)||(a<0&&b<0)) return 0;
>>>>>> else return a<b;
>>>>>> }
>>>>>> On Fri, Jun 29, 2012 at 3:37 PM, raghavan M <
>>>>>> peacelover1987...@yahoo.co.in> wrote:
>>>>>>
>>>>>>> This is a variant of that one
>>>>>>>
>>>>>>>   ------------------------------
>>>>>>> *From:* saurabh singh <saurab...@gmail.com>
>>>>>>> *To:* algogeeks@googlegroups.com
>>>>>>> *Sent:* Friday, 29 June 2012 3:05 PM
>>>>>>>
>>>>>>> *Subject:* Re: [algogeeks] MS Question: Segregrate positive and
>>>>>>> negative nos in array without changing order
>>>>>>>
>>>>>>> duplicate of a previous post.Kindly refer to that post.
>>>>>>> Saurabh Singh
>>>>>>> B.Tech (Computer Science)
>>>>>>> MNNIT
>>>>>>> blog:geekinessthecoolway.blogspot.com
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Fri, Jun 29, 2012 at 10:41 AM, raghavan M <
>>>>>>> peacelover1987...@yahoo.co.in> wrote:
>>>>>>>
>>>>>>> Hi
>>>>>>> Question as in subject
>>>>>>>
>>>>>>> *No extra space (can use one extra space)-O(1) max
>>>>>>> *No order change allowed
>>>>>>> example:
>>>>>>>
>>>>>>> input : 1,-5,2,10,-100,-2
>>>>>>> output: -5,-10,-100,1,2
>>>>>>>
>>>>>>> input : -1,-5,10,11,15,-500,200,-10
>>>>>>> output : -1,-5,-10,-500,-10,10,11,15
>>>>>>>
>>>>>>>
>>>>>>> Thanks
>>>>>>> Raghavn
>>>>>>>  --
>>>>>>> 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.
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> regards,
>>>>>> Bhaskar Kushwaha
>>>>>> Student
>>>>>> Final year
>>>>>> CSE
>>>>>> M.N.N.I.T.  Allahabad
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> regards,
>>>>> Bhaskar Kushwaha
>>>>> Student
>>>>> Final year
>>>>> CSE
>>>>> M.N.N.I.T.  Allahabad
>>>>>
>>>>>  --
>>>>> 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.
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Utsav Sharma,
>>>> NIT Allahabad
>>>>
>>>>  --
>>>> 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.
>>>
>>
>>
>>
>> --
>> regards,
>> Bhaskar Kushwaha
>> Student
>> Final year
>> CSE
>> M.N.N.I.T.  Allahabad
>>
>>  --
>> 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.
>



-- 
*DARPAN BAWEJA*
*3rd year, I.T*
*MNNIT Allahabad*

-- 
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