Algorithms_in_C++ 1.0.0
Set of algorithms implemented in C++.

Calculate the length of the longest increasing subsequence in an array. More...
#include <cassert>
#include <climits>
#include <iostream>
#include <vector>
Namespaces  
namespace  dynamic_programming 
Dynamic Programming algorithms.  
Functions  
uint64_t  dynamic_programming::LIS (const std::vector< uint64_t > &a, const uint32_t &n) 
Calculate the longest increasing subsequence for the specified numbers.  
static void  test () 
Selftest implementations.  
int  main (int argc, char const *argv[]) 
Main function.  
Calculate the length of the longest increasing subsequence in an array.
In computer science, the longest increasing subsequence problem is to find a subsequence of a given sequence in which the subsequence's elements are in sorted order, lowest to highest, and in which the subsequence is as long as possible. This subsequence is not necessarily contiguous, or unique. Longest increasing subsequences are studied in the context of various disciplines related to mathematics, including algorithmics, random matrix theory, representation theory, and physics. The longest increasing subsequence problem is solvable in time O(n log n), where n denotes the length of the input sequence.
int main  (  int  argc, 
char const *  argv[] ) 
Main function.
argc  commandline argument count (ignored) 
argv  commandline array of arguments (ignored) 

static 
Selftest implementations.
< The longest increasing subsequence is {2,3,4,5,8}