随笔 - 403  文章 - 0  评论 - 6  阅读 - 3254

12月21日

今天进行了篮球考试,考了投篮和上篮,应该能及格,下午去上了数据结构写了

快速排序

复制代码
int Partition(SqList L,int low,int high)
{
    L.elem[0]=L.elem[low];
    int pivotkey=L.elem[0];
    while(low<high)
    {
    while(low<high&&L.elem[high]>=pivotkey)--high;
        L.elem[low]=L.elem[high];
        while(low<high&&L.elem[low]<=pivotkey)++low;
        L.elem[high]=L.elem[low];
    }
    L.elem[low]=L.elem[0];
    return low;
}
复制代码

堆排序

复制代码
void HeapAdjust(HeapType H,int s,int m)
{
    int rc=H.elem[s];
    for(int j=2*s;j<=m;j*=2)
    {
        if(j<m&&H.elem[j]<H.elem[j+1])++j;
        if(rc>=H.elem[j])break;
        H.elem[s]=H.elem[j];s=j;
    }
    H.elem[s]=rc;
}
复制代码

归并排序

复制代码
void Merge(SqList L,int low,int m,int high)
{
    int i,j,k;
    i=j=low;
    k=m+1;
    int arr[1001];
    while(j<=m&&k<=high)
    {
    if(L.elem[j]<L.elem[k])
        arr[i++]=L.elem[j++];
    else
        arr[i++]=L.elem[k++];
    }
    while(j<=m)arr[i++]=L.elem[j++];
    while(k<=high)arr[i++]=L.elem[k++];
    for(int l=low;l<=high;l++)
    {
        L.elem[l]=arr[l];
    }
}
复制代码

直接插入排序

复制代码
void InsertSort(SqList L)
{
    int j;
    for(int 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];
        }
    }
}
复制代码

希尔排序

复制代码
void ShellInsert(SqList L,int dk)
{
    for(int i=dk+1;i<=L.Length;++i)
    {
        int j;
        if(L.elem[i]<L.elem[i-dk])
        {
            L.elem[0]=L.elem[i];
            for(j=i-dk;j>0&&L.elem[0]<L.elem[j];j-=dk)
                L.elem[j+dk]=L.elem[j];
            L.elem[j+dk]=L.elem[0];
        }
    }
}
复制代码

 

posted on   石铁生  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示