okeefe | j'ai un IndexOutOfBoundException
Code :
- public void heapsort(int tab[]){
- int left,right, index, x;
- left = tab.length / 2 + 1;
- right = tab.length;
- while(right > 1){
- left--;
- ajuster(tab, left, right);
- }
- for(index=right; index >= 1; index--){
- x = tab[1];
- tab[1] = tab[index];
- tab[index] = x;
- ajuster(tab,1,index-1);
- }
- }
- public void ajuster(int tab[],int left, int right){
- int i, j, x;
- i=left;
- j = 2 * left;
- x = tab[i];
- if ((j < right) && (tab[j+1] > tab[j]) )
- j++;
- while((j<=right) && (tab[j])>x) {
- tab[i] = tab[j];
- i = j;
- j = j*2;
- if((j<right) && (tab[j+1] > tab[j]) )
- j++;
- }
- tab[i] = x;
- }
|
|