数据结构 树笔记-9 直接插入排序

内排序:待排序列完全放在内存中,适用于待排序列中的元素个数不多,足以在内存中进行。

外排序:排序过程除了需要在内存中进行,还需要访问外存储器,因为待排序列中的元素个数个数太多了。

内排序 插入排序

插入排序 直接插入排序

  

   

    

    

    代码:

#include <stdio.h>

#define MAX 100
typedef struct{
    int elem[MAX];
    int length;
}SeqList;

void print_list(SeqList L)
{
    for(int i=1; i<=L.length; i++){
        printf("%d\n",L.elem[i]);
    }
}

void insert_sort(SeqList *L)
{
    int i,j;
    for(i=2;i<=L->length;i++){
        if(L->elem[i] < L->elem[i-1]){
            L->elem[0] = L->elem[i];
            L->elem[i] = L->elem[i-1];

            for(j=i-2;L->elem[0] < L->elem[j];--j){
                L->elem[j+1]=L->elem[j];
            }
            L->elem[j+1] = L->elem[0];
        }
    }

}

int main()
{
    SeqList L = (SeqList){{0,23,11,45,5},4};//L.elem[0]
//    print_list(L);
    insert_sort(&L);
    print_list(L);
}



猜你喜欢

转载自blog.csdn.net/linking_lin/article/details/80673263