How to sort Integer digits in ascending order without Strings or Arrays?

前端 未结 8 735
傲寒
傲寒 2020-12-06 06:32

I\'m trying to sort the digits of an integer of any length in ascending order without using Strings, arrays or recursion.

Example:

Input: 451467
Outp         


        
8条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-06 07:07

    Here is the simple solution :

        public class SortDigits
        {
            public static void main(String[] args)
            {
                sortDigits(3413657);
            }
    
            public static void sortDigits(int num)
            {
                System.out.println("Number  : " + num);
                String number = Integer.toString(num);
                int len = number.length(); // get length of the number
                int[] digits = new int[len];
                int i = 0;
                while (num != 0)
                {
                    int digit = num % 10;
                    digits[i++] = digit; // get all the digits
                    num = num / 10;
                }
                System.out.println("Digit before sorting: ");
                for (int j : digits)
                {
                    System.out.print(j + ",");
                }
                sort(digits);
                System.out.println("\nDigit After sorting: ");
                for (int j : digits)
                {
                    System.out.print(j + ",");
                }
            }
            //simple bubble sort 
            public static void sort(int[] arr)
            {
                for (int i = 0; i < arr.length - 1; i++)
                    for (int j = i + 1; j < arr.length; j++)
                    {
                        if (arr[i] > arr[j])
                        {
                            int tmp = arr[j];
                            arr[j] = arr[i];
                            arr[i] = tmp;
                        }
                    }
            }
        }
    

提交回复
热议问题