X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=src%2Fgenealgorithms.cpp;h=67c504e77b3f9bdfad9589236e8f65f8e2b2cd5d;hb=e81855989d0f0e124e0ec770b417bcb099959391;hp=78b0f0572dc283b1e7e8f7278303954ff77cddac;hpb=9299a79715f5b11b0ab26bff80ab7a610030b126;p=germs.git diff --git a/src/genealgorithms.cpp b/src/genealgorithms.cpp index 78b0f05..67c504e 100644 --- a/src/genealgorithms.cpp +++ b/src/genealgorithms.cpp @@ -66,8 +66,8 @@ struct FindP{ }; -int countCycles(const GeneOrder& go){ - int cycles = 0; +size_t countCycles(const GeneOrder& go){ + size_t cycles = 0; set marked; vector intervals = findIntervals(go); vector points = findIntervalsAtPoints(intervals); @@ -92,6 +92,12 @@ int countCycles(const GeneOrder& go){ return cycles; } +size_t inversionDistance(const GeneOrder& go){ + size_t cycles = countCycles(go); + + return go.size() - 1 - cycles; +} + int sign(Gene g){ if (g > 0) return 1;