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.
