import java.util.Arrays;
public class Tester {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] p = new int[] { 5, 3, 1, 4, 6, 2, 8, 7 };
System.out.println("Dlzka najdhlsej vybranej rastucej podpostupnosti je: "+NVRP(p));
}
// Najdlhšia vybraná rastúca podpostupnosť
public static int NVRP(int[] p) {
// pole medzivysledkov, ktore naplnam
int[] d = new int[p.length];
// maximalna dlzka podpostupnosti
int maxDlzka = 0;
for (int i = 0; i < p.length; i++) {
d[i] = 1;
for (int j = 0; j < i; j++)
// ak i-ty prvok je mensi nez j-ty, tak ho mozem prilepit k NVRP
// konciatej v j-tom prvku
if (p[j] < p[i]) {
d[i] = Math.max(d[i], d[j] + 1);
if (d[i] > maxDlzka)
maxDlzka = d[i];
}
}
// pre kontrolu vypis pole medzivysledkov
System.out.println(Arrays.toString(d));
return maxDlzka;
}
}