diff --git a/src/Sorters/bubblesorter.cpp b/src/Sorters/bubblesorter.cpp index 4389f82..a37e30a 100644 --- a/src/Sorters/bubblesorter.cpp +++ b/src/Sorters/bubblesorter.cpp @@ -17,12 +17,18 @@ void BubbleSorter::sortStep() *compared2=i+1; if (values->at(i) > values->at(i + 1)) { std::swap(values->at(i), values->at(i + 1)); + changed = true; } i++; } else{ - i=0; - j++; + if(!changed) { + timer->stop(); + } else { + i=0; + j++; + changed = false; + } } } diff --git a/src/Sorters/bubblesorter.h b/src/Sorters/bubblesorter.h index a6f05b5..d6081a2 100644 --- a/src/Sorters/bubblesorter.h +++ b/src/Sorters/bubblesorter.h @@ -12,6 +12,7 @@ class BubbleSorter : public AbstractSorter private: int i; int j; + bool changed = false; }; #endif // BUBBLESORTER_H