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

Reply via email to