0001 template <typename T> void Vector<T>::sort(Rank lo, Rank hi) { 0002 if (lo + 2 > hi) return; //退化情况,统一处理 0003 switch (rand() % 6) { //随机选择算法以充分测试;实际中可视具体环境灵活取舍或扩充 0004 case 1 : bubbleSort(lo, hi); break; //起泡排序 0005 case 2 : selectionSort(lo, hi); break; //选择排序(见示例代码包,自学) 0006 case 3 : mergeSort(lo, hi); break; //归并排序 0007 case 4 : heapSort(lo, hi); break; //堆排序(第12章) 0008 case 5 : quickSort(lo, hi); break; //快速排序(第14章) 0009 default : shellSort(lo, hi); break; //希尔排序(第14章) 0010 } //switch 0011 } //sort