0001 template <typename T> void Vector<T>::mergeSort(Rank lo, Rank hi) { 0002 if (hi-lo < 2) return; //单元素自然有序,否则 0003 Rank mi = (lo+hi)/2; //均分为前缀、后缀 0004 mergeSort(lo, mi); mergeSort(mi, hi); //各自排序 0005 merge(lo, mi, hi); //归并(实质的计算),O(n) 0006 } //mergeSort, O(nlogn)