试以 L.r[k+1] 作为监视哨改写教科书 10.2.1 节中给出的直接插入排序算法。其中, L.r[1..k] 为待排序记录且 k 。 void InsertionSort ( SqList &L ) { // 对顺序表 L 作直接插入排序。 for ( i=k-1-1; i>=1; --i ) { if (L.r[i+1].key < L.r[i].key) { L.r[k+1] = L.r[i]; // 复制为监视哨 for ( j=i+1; L.r[k+1].key > L.r[j].key; ++ j ) L.r[j-1] = L.r[j]; // 记录前移 }//end if }//end for } // InsertSort