Ordenar matriz com base na contagem de ocorrências em ordem crescente

Como posso organizar os elementos em uma matriz com base no número de ocorrências desse valor em ordem crescente em java.

Isso é o que eu tentei:

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]);
}

questionAnswers(20)

yourAnswerToTheQuestion