};
-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);
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;