0001 template <typename T> void List<T>::selectionSort(LNP<T> h, LNP<T> t) { 0002 for (LNP<T> x = t->pred; h->succ != x; t = x, x = t->pred) //反复地从无序前缀(h,t)中 0003 swap(getMax(h,t)->data, x->data); //找出最大者,并通过交换令其就位 0004 //getMax(h,t)->movePred(t); //亦可通过移动就位:同样是O(1)成本,且能保证排序的稳定性 0005 } //selectionSort