57
правок
Изменения
→Псевдокод
//формирование стопок
List<Stack<E>> createPiles() List<Stack<E>> piles '''for''' (i = 0..n - 1) Stack<E> pile = Pile(source[i]) i = BinarySearchbinarySearch(piles, pile) '''if''' (i == piles.size) piles.Addadd(pile) '''else''' piles[i].Addadd(Pile(source[i])) piles[i].Toptop().Previousprevious() = piles[i - 1].Top top() // для последующего получения НВП return piles
//Получение отсортированного массива
bool comparePiles (Stack<E> x, Stack<E> y)
return x.Peekpeek() < y.Peekpeek() PriorityQueuepriorityQueue<Stack<E>> q(piles, comparePiles) E[] getSortedArray(priorityQueue<Stack<E>> q) '''for''' (i = 0..n - 1) answer[i] = q.Minmin().Poppop() return answer
//Получение наибольшей возрастающей подпоследовательности
== Пример ==