天天看點

【資料結構】排序—直接插入排序

#include<stdio.h>
#define MaxSize 30
struct SqList
{
    int data[MaxSize];
    int length;
};
int Init(struct SqList *L,int i)
{   
    int j = 1;
    for(;j<i+1;j++)
        scanf("%d",&(L->data[j]));
    
         L->length = j-1;
    return 0;        
}
int InsertSort(struct SqList *L)
{
    int i ;
    int j;
    for(i = 2;i<=L->length;++i)
    {
        if(L->data[i]<L->data[i-1])
        {
            L->data[0] = L->data[i];
            L->data[i] = L->data[i-1];
            for(j = i-2;L->data[0]<L->data[j];--j)
            {
                L->data[j+1] = L->data[j];
            } 
            L->data[j+1] = L->data[0];
        }
        
    }   
 return 0;
}
        
int main()
{
    
    struct SqList L;
    int i = 10;
    Init(&L,i);
    InsertSort(&L);
    for(i = 1;i<L.length;i++)
    {
        printf("%d\t",L.data[i]);
    }
    return 0;
}






           

繼續閱讀