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