排序算法(笔记)

来源:互联网 发布:linux c 编译器下载 编辑:程序博客网 时间:2024/05/17 06:45

1.插入排序

voidinsertionSort( int A[ ], int N ){    int j, P;    int Tmp;    for( P = 1; P < N; P++ )    {        Tmp = A[ P ];        for( j = P; j > 0 && A[ j - 1 ] > Tmp; j-- )            A[ j ] = A[ j - 1 ];        A[ j ] = Tmp;    }}
2.希尔排序

void shellSort(int a[],int n){    int i,j,increment;    int tmp;    for(increment=n/2;increment>0;increment/=2)        for(i=increment;i<n;i++)        {            tmp=a[i];            //for(j=i;j>=increment&&tmp<a[j-increment];j-=increment)                          //非j>increment&&tmp<a[j-1];j--              //  a[j]=a[j-1];   非 a[j]=a[j-1];            //for(j=i;j>=increment&&tmp<a[j-increment];j-=increment)              //  a[j]=a[j-1];   另一种写法,正确            for(j=i;j>=increment;j-=increment)                if(tmp<a[j-increment])                    a[j]=a[j-increment];                else                    break;            a[j]=tmp;        }}


原创粉丝点击