0001 template <typename T> void List<T>::sort ( ListNodePosi(T) p, int n ) { //列表区间排序 0002 switch ( rand() % 3 ) { //随机选取排序算法。可根据具体问题的特点灵活选取或扩充 0003 case 1: insertionSort ( p, n ); break; //插入排序 0004 case 2: selectionSort ( p, n ); break; //选择排序 0005 default: mergeSort ( p, n ); break; //归并排序 0006 } 0007 }