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