public class Particao {
public static void main (String [] args) {
float [][] v = {{0.1f, 0.2f, 0.1f, 0.2f, 0.1f},
{0.1f, 0.2f, 0.3f, 0.1f, 0.1f},
{0.2f, 0.3f, 0.1f,0.1f, 0.3f},
{0.4f, 0.1f, 0.1f,0.1f, 0.2f},
{0.2f, 0.2f, 0.3f, 0.3f, 0.1f},
};
float p = particao (v);
System.out.println ("Posição:" + p);
for (int i = 0; i < v.length; i ++) {
System.out.println("");
for (int g = 0; g < v[i].length; g++) {
System.out.print ("["+v [i][g] + "]");
}
}
}
static int particao (float v [][]) {
float pivo = v [0][0];
int k = 0;
int l = v.length-1;
int i = 1;
int j = v.length- 1;
while (i <= j && k >= l) {
if (v [i][l] <= pivo) {
i ++; // sobe oi
l--;
}
else if (v [j][k]> pivo) {
j--;
k++;// desce oj
}
else {
// troca
float temp = v[k][l];
v[k][l]= v[i][j];
v[i][j]= temp;
i ++; k++;
j--; l--;
}
}
v [0][0] = v [i][j];
v [j][i] = pivo;
return j;
}
}