private void bubbleSort(int[] list) {
    
    int len = list.length;
    
    boolean swapped;
    
    do{
      swapped = false;
      for(int i = 1; i < len; ++i) {
        if( list[i-1] > list[i] ) {
          super.swap(list, i-1, i);
          swapped = true;
        }
      }
      
      // Each pass, the largest, 2nd largest, 3rd largest, etc... items are put
      // into their final place.  Update len to reflect this.
      len -= 1;
    }while(swapped);
  }