Isn't it simply finding the next permutation of a number???

On Thu, Sep 22, 2011 at 7:01 PM, Dheeraj Sharma <[email protected]
> wrote:

> @bharat...so i thnk 7585 shud hav 7855 as ans..!!
>
>
> On Thu, Sep 22, 2011 at 5:42 PM, Arpit Sood <[email protected]> wrote:
>
>> @yogesh nice algo...
>>
>> it is not even required to sort the left out array, just reverse it :)
>>
>> On Thu, Sep 22, 2011 at 5:05 PM, Yogesh Yadav <[email protected]> wrote:
>>
>>> @ratan: thanks for correction .... little correction in my logic...
>>>
>>> start from rightmost digit and search towards left a digit less than
>>> this... if found ... just swap...now after swapping save the index with
>>> which you are swapping ...and after that sort the array in ascending
>>> order...u got the answer... if no small digit found then select second
>>> rightmost digit and follow the same process...and so on...
>>>
>>>
>>> ....
>>>
>>> for ex: 759354
>>>
>>> rightmost digit =4
>>>
>>> search for smaller digit than 4 towards left... it will be 3...
>>>
>>> then  7594(53).... now make the array in brackets in ascending order...
>>>
>>> answer 759435....
>>>
>>> now am i right??
>>>
>>>
>>>
>>> On Thu, Sep 22, 2011 at 4:55 PM, Ratan <[email protected]>wrote:
>>>
>>>> the answer should be 759435.......
>>>>
>>>> On Thu, Sep 22, 2011 at 4:45 PM, Yogesh Yadav <[email protected]>
>>>> wrote:
>>>> > my logic: if wrong then plz tell...
>>>> >
>>>> > start from rightmost digit and search towards left a digit less than
>>>> this...
>>>> > if found ... just swap...u got the answer... if no small digit found
>>>> then
>>>> > select second rightmost digit and follow the same process...and so
>>>> on...
>>>> >
>>>> > ....
>>>> >
>>>> > for ex: 759354
>>>> >
>>>> > rightmost digit =4
>>>> >
>>>> > search for smaller digit than 4 towards left... it will be 3...
>>>> >
>>>> > then answer 759453
>>>> >
>>>> >
>>>> > ....
>>>> >
>>>> > On Thu, Sep 22, 2011 at 4:40 PM, Yogesh Yadav <[email protected]>
>>>> wrote:
>>>> >>
>>>> >> @algo geek:
>>>> >>
>>>> >> there is some error in your logic...
>>>> >>
>>>> >> consider a number 759845
>>>> >>
>>>> >> according to ur logic the number greater than this will be 784559
>>>> >>
>>>> >> but it should be 759854....
>>>> >>
>>>> >> .....
>>>> >>
>>>> >> On Thu, Sep 22, 2011 at 4:24 PM, algo geek <[email protected]>
>>>> wrote:
>>>> >>>
>>>> >>> Keep a pointer ont the rightmost digit. Keep moving right until you
>>>> find
>>>> >>> the number in increasing number. As soon as this breaks. stop. Swap
>>>> the
>>>> >>> digit at the current position with the smallest digit, but larger
>>>> than the
>>>> >>> current position digit, sort the array to the right of the current
>>>> position
>>>> >>> in descending order.
>>>> >>>
>>>> >>> explanation:
>>>> >>> NUMBER:759854
>>>> >>> INDEX:     012356
>>>> >>>
>>>> >>> Keep the pointer at index 6. Keep moving right as long as numbers
>>>> are in
>>>> >>> increasing fashion. Stop at index 1.
>>>> >>> swap this digit with the smallest digit larger than 5 i.e. 8
>>>> >>> 78(9554)
>>>> >>> now sort the array in parenthesis in descending order
>>>> >>> ans : 784559
>>>> >>>
>>>> >>> For the implementation you can actually create an array of length
>>>> 10, to
>>>> >>> keep track of all the digits encounters while moving left. This will
>>>> help in
>>>> >>> sorting as well (similar to counting sort).
>>>> >>> One pass will do the work. You can print the answer directly
>>>> afterwards.
>>>> >>>
>>>> >>> With Regards
>>>> >>> Unknown
>>>> >>>
>>>> >>> On Thu, Sep 22, 2011 at 4:13 PM, Dheeraj Sharma
>>>> >>> <[email protected]> wrote:
>>>> >>>>
>>>> >>>> in nlog(n)
>>>> >>>> #include<iostream>
>>>> >>>> #include<conio.h>
>>>> >>>> #include<string.h>
>>>> >>>> #define swap(a,b,c) (c)=(a),(a)=(b),(b)=(c)
>>>> >>>> using namespace std;
>>>> >>>> int t;
>>>> >>>> void quicksort(char arr[],int left,int right)
>>>> >>>> {
>>>> >>>>      if(left<right)
>>>> >>>>      {
>>>> >>>>                    int piv=right;
>>>> >>>>                    int i=left,j=left;
>>>> >>>>                    while((i<right) && (j<right))
>>>> >>>>                    {
>>>> >>>>                     if(arr[j]<arr[piv])
>>>> >>>>                     {
>>>> >>>>                     swap(arr[i],arr[j],t);
>>>> >>>>                     i++;
>>>> >>>>                     }
>>>> >>>>                     j++;
>>>> >>>>                    }
>>>> >>>>                    swap(arr[i],arr[piv],t);
>>>> >>>>                    quicksort(arr,left,i-1);
>>>> >>>>                    quicksort(arr,i+1,right);
>>>> >>>>                    }
>>>> >>>>      }
>>>> >>>> int main()
>>>> >>>> {
>>>> >>>>     char str[100],t;
>>>> >>>>     int arr[100],i=0;
>>>> >>>>     cin>>str;
>>>> >>>>     int min=0;
>>>> >>>>     int len=strlen(str);
>>>> >>>>     while(str[i])
>>>> >>>>     {
>>>> >>>>                  if(str[i]<=str[min])
>>>> >>>>                  min=i;
>>>> >>>>                  arr[i]=min;
>>>> >>>>                  i++;
>>>> >>>>                  }
>>>> >>>>      i=len-1;
>>>> >>>>      while((arr[i]==i)&&(i>0))
>>>> >>>>      i--;
>>>> >>>>      swap(str[i],str[arr[i]],t);
>>>> >>>>
>>>> >>>> if(i>0)
>>>> >>>> quicksort(str,arr[i]+1,len-1);
>>>> >>>>     cout<<str;
>>>> >>>>  getch();
>>>> >>>> }
>>>> >>>>
>>>> >>>>
>>>> >>>> On Thu, Sep 22, 2011 at 3:33 PM, Dheeraj Sharma
>>>> >>>> <[email protected]> wrote:
>>>> >>>>>
>>>> >>>>> #include<iostream>
>>>> >>>>> #include<conio.h>
>>>> >>>>> #include<string.h>
>>>> >>>>> #define swap(a,b,c) (c)=(a),(a)=(b),(b)=(c)
>>>> >>>>> using namespace std;
>>>> >>>>> int main()
>>>> >>>>> {
>>>> >>>>>     char str[100],t;
>>>> >>>>>     cin>>str;
>>>> >>>>>
>>>> >>>>>     int len=strlen(str);
>>>> >>>>>  int i,x,boo=1;
>>>> >>>>>     for(i=len-1;i>0&&boo;i--)
>>>> >>>>>     {
>>>> >>>>>         for(x=i-1;x>=0&&boo;x--)
>>>> >>>>>         {
>>>> >>>>>             if(str[x]<str[i])
>>>> >>>>>             {
>>>> >>>>>             swap(str[x],str[i],t);
>>>> >>>>>             boo=0;
>>>> >>>>>             }
>>>> >>>>>             }
>>>> >>>>>             }
>>>> >>>>> if(i>0)
>>>> >>>>> {
>>>> >>>>>
>>>> >>>>> //Sorting...
>>>> >>>>>            for(int l=x+2;l<len-1;l++)
>>>> >>>>>            {
>>>> >>>>>                    int min=l;
>>>> >>>>>                    for(int k=l+1;k<len;k++)
>>>> >>>>>                    {
>>>> >>>>>                            if(str[k]<str[min])
>>>> >>>>>                            min=k;
>>>> >>>>>                            }
>>>> >>>>>                    swap(str[min],str[l],t);
>>>> >>>>>                    }
>>>> >>>>> }
>>>> >>>>>     cout<<str;
>>>> >>>>>
>>>> >>>>>
>>>> >>>>>  getch();
>>>> >>>>> }
>>>> >>>>>
>>>> >>>>>
>>>> >>>>> correct me..if m wrong..
>>>> >>>>>
>>>> >>>>> On Thu, Sep 22, 2011 at 2:01 PM, Ratan <[email protected]
>>>> >
>>>> >>>>> wrote:
>>>> >>>>>>
>>>> >>>>>> @dheeraj ... ya u r ryt.... thnxs for the correction
>>>> >>>>>>
>>>> >>>>>> On Thu, Sep 22, 2011 at 1:30 PM, Dheeraj Sharma
>>>> >>>>>> <[email protected]> wrote:
>>>> >>>>>> > @Ratan:
>>>> >>>>>> > i think the next largest here would be 784559
>>>> >>>>>> >
>>>> >>>>>> > On Thu, Sep 22, 2011 at 12:39 PM, Ratan <
>>>> [email protected]>
>>>> >>>>>> > wrote:
>>>> >>>>>> >>
>>>> >>>>>> >> @kartik : to some extent ur code is giving the right answer...
>>>> btw
>>>> >>>>>> >> somehow check tis
>>>> >>>>>> >> let for example the no be 759854
>>>> >>>>>> >> then the next biggest no is 794558
>>>> >>>>>> >> btw ur program is giving 795854 which is undoubtedly
>>>> >>>>>> >> wrong............
>>>> >>>>>> >> the code would give more appropriate result if u sort the
>>>> numbers
>>>> >>>>>> >> from
>>>> >>>>>> >> from i to n on meeting the condition of (a[i-1]<a[i])
>>>> >>>>>> >>
>>>> >>>>>> >> On Thu, Sep 22, 2011 at 11:53 AM, Ramakant Sharma
>>>> >>>>>> >> <[email protected]>
>>>> >>>>>> >> wrote:
>>>> >>>>>> >> > starting from right find first digit less then right most
>>>> >>>>>> >> > digit,if no
>>>> >>>>>> >> > any
>>>> >>>>>> >> > digit is less,then move to next right most and compair
>>>> ,,,,when
>>>> >>>>>> >> > found
>>>> >>>>>> >> > exchange those no,
>>>> >>>>>> >> > now sort the no.s up to that index of the given no which is
>>>> >>>>>> >> > exchanged:
>>>> >>>>>> >> > Ex:
>>>> >>>>>> >> > 43987723893239876
>>>> >>>>>> >> > first required sequence: 439877238932[3]987[6] swap these no
>>>> >>>>>> >> > 439877238932[6]{987[3]}
>>>> >>>>>> >> > now sort in decreasing order  439877238932[6]{3789} this is
>>>> the
>>>> >>>>>> >> > required
>>>> >>>>>> >> > no
>>>> >>>>>> >> > ....correct me if any thing wrong
>>>> >>>>>> >> >
>>>> >>>>>> >> >
>>>> >>>>>> >> >
>>>> >>>>>> >> >
>>>> >>>>>> >> >
>>>> >>>>>> >> > --
>>>> >>>>>> >> > You received this message because you are subscribed to the
>>>> >>>>>> >> > Google
>>>> >>>>>> >> > Groups
>>>> >>>>>> >> > "Algorithm Geeks" group.
>>>> >>>>>> >> > To post to this group, send email to
>>>> [email protected].
>>>> >>>>>> >> > To unsubscribe from this group, send email to
>>>> >>>>>> >> > [email protected].
>>>> >>>>>> >> > For more options, visit this group at
>>>> >>>>>> >> > http://groups.google.com/group/algogeeks?hl=en.
>>>> >>>>>> >> >
>>>> >>>>>> >>
>>>> >>>>>> >>
>>>> >>>>>> >>
>>>> >>>>>> >> --
>>>> >>>>>> >> Ratan Kumar
>>>> >>>>>> >> B. Tech
>>>> >>>>>> >> 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
>>>> [email protected].
>>>> >>>>>> >> To unsubscribe from this group, send email to
>>>> >>>>>> >> [email protected].
>>>> >>>>>> >> For more options, visit this group at
>>>> >>>>>> >> http://groups.google.com/group/algogeeks?hl=en.
>>>> >>>>>> >>
>>>> >>>>>> >
>>>> >>>>>> >
>>>> >>>>>> >
>>>> >>>>>> > --
>>>> >>>>>> > Dheeraj Sharma
>>>> >>>>>> > Comp Engg.
>>>> >>>>>> > NIT Kurukshetra
>>>> >>>>>> >
>>>> >>>>>> >
>>>> >>>>>> > --
>>>> >>>>>> > You received this message because you are subscribed to the
>>>> Google
>>>> >>>>>> > Groups
>>>> >>>>>> > "Algorithm Geeks" group.
>>>> >>>>>> > To post to this group, send email to
>>>> [email protected].
>>>> >>>>>> > To unsubscribe from this group, send email to
>>>> >>>>>> > [email protected].
>>>> >>>>>> > For more options, visit this group at
>>>> >>>>>> > http://groups.google.com/group/algogeeks?hl=en.
>>>> >>>>>> >
>>>> >>>>>>
>>>> >>>>>>
>>>> >>>>>>
>>>> >>>>>> --
>>>> >>>>>> Ratan Kumar
>>>> >>>>>> B. Tech
>>>> >>>>>> 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 [email protected].
>>>> >>>>>> To unsubscribe from this group, send email to
>>>> >>>>>> [email protected].
>>>> >>>>>> For more options, visit this group at
>>>> >>>>>> http://groups.google.com/group/algogeeks?hl=en.
>>>> >>>>>>
>>>> >>>>>
>>>> >>>>>
>>>> >>>>>
>>>> >>>>> --
>>>> >>>>> Dheeraj Sharma
>>>> >>>>> Comp Engg.
>>>> >>>>> NIT Kurukshetra
>>>> >>>>>
>>>> >>>>>
>>>> >>>>
>>>> >>>>
>>>> >>>>
>>>> >>>> --
>>>> >>>> Dheeraj Sharma
>>>> >>>> Comp Engg.
>>>> >>>> NIT Kurukshetra
>>>> >>>>
>>>> >>>>
>>>> >>>> --
>>>> >>>> You received this message because you are subscribed to the Google
>>>> >>>> Groups "Algorithm Geeks" group.
>>>> >>>> To post to this group, send email to [email protected].
>>>> >>>> To unsubscribe from this group, send email to
>>>> >>>> [email protected].
>>>> >>>> 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 [email protected].
>>>> >>> To unsubscribe from this group, send email to
>>>> >>> [email protected].
>>>> >>> 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 [email protected].
>>>> > To unsubscribe from this group, send email to
>>>> > [email protected].
>>>> > For more options, visit this group at
>>>> > http://groups.google.com/group/algogeeks?hl=en.
>>>> >
>>>>
>>>>
>>>>
>>>> --
>>>> Ratan Kumar
>>>> B. Tech
>>>> 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 [email protected].
>>>> To unsubscribe from this group, send email to
>>>> [email protected].
>>>> 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 [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected].
>>> For more options, visit this group at
>>> http://groups.google.com/group/algogeeks?hl=en.
>>>
>>
>>
>>
>> --
>> Regards,
>> Arpit Sood
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Algorithm Geeks" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/algogeeks?hl=en.
>>
>
>
>
> --
> *Dheeraj Sharma*
> Comp Engg.
> NIT Kurukshetra
>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Algorithm Geeks" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/algogeeks?hl=en.
>



-- 
*Regards,*
*Piyush Kapoor,*
*2nd year,CSE
IT-BHU*

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

Reply via email to