Vreo metoda de a sorta un numar natural fara a folosi vectori?

Răspuns :

Merge pentru numere care nu contin cifra 0 si numere de maxim 16 cifre


#include <iostream>

using namespace std;

long long remove(int min, long long n)

{

   long long aux=0;

   while (n!=0)

   {

       if(n%10!=min)

           aux=aux*10+n%10;

       n=n/10;

   }

   n=0;

   while(aux!=0)

   {

       n= n*10+aux%10;

       aux=aux/10;

   }

   return n;

}

int main() {

   long long n, n_final=0;

   cout<<"n=";

   cin>>n;

   while(n!=0)

   {

       long long aux=n;

       int min=10,k=0;

       while(aux!=0)

       {

           int mp=aux%10;

           if(mp<min)

           {

               min = mp;

               k=1;

           }

           else if(mp==min)

               k++;

           aux =aux/10;

       }

       for(int i=0; i<k; i++)

           n_final = n_final*10+min;

       n = remove(min,n);

   }

   cout<<"n_sort="<<n_final<<endl;

   return 0;

}