Java: Ordene array inteiro sem usar Arrays.sort ()

Esta é a instrução em um dos exercícios em nossa classe Java. Antes de mais nada, gostaria de dizer que "faço minha lição de casa" e não estou apenas sendo preguiçoso pedindo a alguém no Stack Overflow para responder a isso por mim. Este item específico tem sido o meu problema de todos os outros exercícios porque eu tenho lutado para encontrar o 'algoritmo perfeito' para isso.

Escreva o programa JAVA que irá inserir 10 valores inteiros e exibir em ordem crescente ou decrescente. Nota: Arrays.sort () não é permitido.

Este é o código que eu criei, funciona, mas tem uma falha óbvia. Se eu inserir o mesmo valor duas vezes ou mais, por exemplo:

5, 5, 5, 4, 6, 7, 3, 2, 8, 10

Apenas um dos três 5s inseridos seria contado e incluído na saída. A saída que obtenho (para a ordem crescente) é:

2 3 4 5 0 0 6 7 8 10.

import java.util.Scanner;

public class Exer3AscDesc
{
    public static void main(String args[])
    {
        Scanner scan = new Scanner(System.in);
        int tenNums[]=new int[10], orderedNums[]=new int[10];
        int greater;
        String choice;

        //get input
        System.out.println("Enter 10 integers : ");
        for (int i=0;i<tenNums.length;i++)
        {
            System.out.print(i+1+"=> ");
            tenNums[i] = scan.nextInt();
        }
        System.out.println();

        //imperfect number ordering algorithm
        for(int indexL=0;indexL<tenNums.length;indexL++)
        {
            greater=0;
            for(int indexR=0;indexR<tenNums.length;indexR++)
            {
                if(tenNums[indexL]>tenNums[indexR])
                {
                    greater++;
                }
            }
            orderedNums[greater]=tenNums[indexL];
        }

        //ask if ascending or descending
        System.out.print("Display order :\nA - Ascending\nD - Descending\nEnter your choice : ");
        choice = scan.next();

        //output the numbers based on choice
        if(choice.equalsIgnoreCase("a"))
        {
            for(greater=0;greater<orderedNums.length;greater++)
            {
                System.out.print(orderedNums[greater]+" ");
            }
        }
        else if(choice.equalsIgnoreCase("d"))
        {
            for(greater=9;greater>-1;greater--)
            {
                System.out.print(orderedNums[greater]+" ");
            }
        }
    }
}

questionAnswers(12)

yourAnswerToTheQuestion