線性表的順序表示和實現:sortAscList

//初始條件:線性表L已存在,1<=i<=ListLength(L)
//操作結果:用e改寫L中第i個數據元素的值
Status SetElem(SqList L,int i,ElemType e){
    if(i<1 || i>ListLength(L)) return ERROR;
    L.elem[i-1] = e;
    return OK;
}

//將鏈表按升序進行排序
void sortAscList(SqList L){
    ElemType e,f,min;
    int min_pos;
    int len = L.length;
    for(int i=1;i<=len;i++){
        GetElem(L,i,&e);
        min=e;
        for(int j=i+1;j<=len;j++){
            //printf("%d\n",j);
            GetElem(L,j,&f);
            if(min>f){
                min=f;
                min_pos=j;
            }
        }

        if(min!=e){
            SetElem(L,i,min);
            SetElem(L,min_pos,e);
        }

    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章