0001 template <typename T> void Vector<T>::bubbleSort(Rank lo, Rank hi) { 0002 for (Rank last; lo < hi; hi = last) //反复起泡扫描:最大元逐个就位,前缀[lo,hi)逐渐缩短 0003 for (Rank i = (last = lo) + 1; i < hi; i++) //逐对检视相邻元素 0004 if (_elem[i-1] > _elem[i]) //若逆序 0005 { swap(_elem[i-1], _elem[i]); last = i; } //随即交换,并记住交换位置 0006 } //bubbleSort,跳跃版