Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public List sort(List list) {
- numOfCompar=0;
- numOfMoves=0;
- int size = list.size();
- int lastSwap = size-1;
- int firstSwap = 0;
- boolean swapped = false;
- do {
- int temp=0;
- for (int left = firstSwap; left <= (lastSwap - 1); ++left) {
- int right = left + 1;
- numOfCompar++;
- if (_comparator.compare(list.get(left), list.get(right)) > 0) {
- temp = right;
- swap(list, left, right);
- swapped = true;
- }
- }
- lastSwap = temp;
- if (!swapped)
- break;
- swapped = false;
- int temp2=0;
- for (int right = lastSwap-1; right >= firstSwap + 1; right--) {
- int left = right - 1;
- numOfCompar++;
- if (_comparator.compare(list.get(left), list.get(right)) > 0) {
- temp2 = right;
- swap(list, left, right);
- swapped = true;
- }
- }
- firstSwap = temp2;
- }
- while (swapped);
- return list;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement