]> ruin.nu Git - germs.git/blobdiff - src/genealgorithms.cpp
good to have a inversion distance function
[germs.git] / src / genealgorithms.cpp
index 78b0f0572dc283b1e7e8f7278303954ff77cddac..67c504e77b3f9bdfad9589236e8f65f8e2b2cd5d 100644 (file)
@@ -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<size_t> marked;
        vector<Interval> intervals = findIntervals(go);
        vector<Interval> 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;