Algoritimo de ordenação

public class Estudando {
   
   public static void main ( String [ ]  args ) {
   
   int array [ ] = new int [ 5] ;
   array[0] = 5;
   array[1] = 4;
   array[2] = 54;
   array[3] = 52;
   array[4] = 59;
   int  aux = 0;
    // enquando a variavel i for menor que o array
   for ( int i = 0 ; i < array.length ;i++ ){
    for ( int j = 0 ; j < array.length - 1 ; j++){
      // se numero anterior for menor que o seu sucessor
      if ( array[i] > array [j+1 ]){ 
      // a variavel aux  recebe o seu sucessor 
      aux =array [ i ];   
      array[i] = array[i+j];
      array[j+1] = aux; 
           }    
   }
   
  }
   for ( int i = 0 ; i< array.length ;i++){
   System.out.println ( array[i] );
     }
   }
  }

Ola pessoas , onde estou errando ?

dá algum erro??

se sim qual??

array[i] = array[i[b][color=“red”]+j[/color][/b]];

O sucessor de i é i+1, não i+j.

Da mesma forma na condição do if:

array[i] > array [j+1]

O sucessor de i é i+1, não j+1.