Advertisement
Guest User

Untitled

a guest
Nov 18th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.10 KB | None | 0 0
  1. void sort() const {
  2.       //bubble sort
  3.       if (!empty() && !onlyOneNode()){
  4.          int N = size();
  5.          bool hasSwapped = false;
  6.          for(int i=0; i<N; i++){
  7.             int j = i;
  8.             for (iterator it = ++begin(); it != end() && j < N; it++){
  9.                // cout << *it << endl;
  10.                // cout <<it._node->_prev->_data<<endl;
  11.                if (*it < (it._node->_prev->_data)){
  12.                   hasSwapped = true;
  13.                   it._node->_next->_prev = it._node->_prev;
  14.                   it._node->_prev->_prev->_next = it._node;
  15.  
  16.                   DListNode<T>* n_tmp = it._node->_next;
  17.                   it._node->_next = it._node->_prev;
  18.                   it._node->_prev->_next = n_tmp;
  19.  
  20.                   DListNode<T>* p_tmp = it._node->_prev->_prev;
  21.                   it._node->_prev->_prev = it._node;
  22.                   it._node->_prev = p_tmp;
  23.                   it++;
  24.                }
  25.                j++;
  26.             }
  27.             // cout << "N: " << N << ", i: " << i << ", j: " << j << endl;
  28.             if(!hasSwapped) break;
  29.          }
  30.       }
  31.    }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement