FUNCTION
Breaks
Counts the number of breaks in a permutation.
Interface
#include <codecogs/maths/combinatorics/permutations/breaks.h>
using namespace Maths::Combinatorics::Permutations;
Consider the permutation
(1)
A <em> break </em> is a pair of neighbors whose values differ by more than 1, i.e.
(2)
This function calculates the number of breaks in a permutation, using the following algorithm:
- Starting with a permutation of order n.
- We prepend an element labeled 0 and append an element labeled
.
- There are now
pairs of neighbors.
- We now search for indices
such that the above
inequality stands.
The identity permutation has a break count of 0. The maximum break count is .
Example:
#include <codecogs/maths/combinatorics/permutations/breaks.h>
#include <iostream>
int main()
{
int sigma[5] = {2, 3, 4, 5, 1};
std::cout << "The number of breaks of the Sigma permutation: ";
std::cout << Maths::Combinatorics::Permutations::break_count(5, sigma);
std::cout << std::endl;
return 0;
}
Output:
The number of breaks of the Sigma permutation: 3
References
SUBSET, a C++ library of combinatorial routines, http://www.csit.fsu.edu/~burkardt/cpp_src/subset/subset.html
Parameters
n
the size of the permutation
p
the actual permutation stored as an array
Returns
the number of breaks found in the permutation
This function's source code is only visible to registered users — documentation and the calculator above are free to use either way. Sign in to see it.