广工数据结构

来源:互联网 发布:bug跟踪管理系统 java 编辑:程序博客网 时间:2024/04/30 17:55
10.23②  试以L.r[k+1]作为监视哨改写教材10.2.1节
中给出的直接插入排序算法。其中,L.r[1..k]为待排
序记录且k<MAXSIZE。


实现下列函数:
void InsertSort(SqList &L);


顺序表的类型SqList定义如下:
typedef struct {
   KeyType key; 
   ... 
} RedType;


typedef struct {
   RedType r[MAXSIZE+1]; // r[0]闲置或用作哨兵单元
   int     length;

} SqList;



void InsertSort(SqList &L)
{
    int i, j;
    int flag = L.length + 1; //新的监视哨
    for(i=2; i<= L.length; ++i){
        if(L.r[i].key < L.r[i-1].key){
            L.r[flag] = L.r[i];
            L.r[i] = L.r[i-1];
            for(j=i-2; L.r[flag].key<L.r[j].key; j--)
                L.r[j+1] = L.r[j];
            L.r[j+1] = L.r[flag];
        }
        
    }
}

0 0
原创粉丝点击