Ordenar la matriz según el recuento de ocurrencias en orden ascendente

¿Cómo puedo organizar los elementos en una matriz en función del número de apariciones de ese valor en orden ascendente en java?

Esto es lo que he intentado:

int a[]={0,0,0,1,3,3,2,1,3,5,6,0};
int b=a.length;
for(int i=0;i<b;i++) {
    for(int j=0;j<i;j++) {
        int temp;
        if( a[j]>a[i]) {
            temp=a[i];
            a[i]=a[j];
            a[j]=temp;
        }
    }
}

for(int r=0;r<a.length;r++) {
    System.out.println(a[r]);
}

Respuestas a la pregunta(20)

Su respuesta a la pregunta