学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
 11 12
发新话题
打印

急!求助排序问题!

急!求助排序问题!

链表中怎么排序
我的怎么没效果,帮看下写程序写晕了
Head是全局变量
int TaxisEngneer(void)
{
    struct engineer *Cur=NULL;
    struct engineer *p=NULL;
    struct engineer *New=NULL;
    struct engineer *pt=NULL;
    int input=1;

    printf("请选择1.编号升序,2.姓名升序,3.工龄升序(默认为编号升序):");
    fflush(stdin);
    scanf("%d",&input);
    if(input==1)
    {
        for( Cur=Head; Cur!=NULL; Cur=Cur->Next )
        {
            New=Cur;
            pt=Cur;
            for( p=Cur->Next; p!=NULL; p=p->Next )//选择排序
            {
                if(Cur->number > p->number)
                {
                    pt=p;
                }
            }
            if(pt!=Cur)
            {
                p=New;
                Cur=pt;
            }
        }
        
        printf("已完成排序,按任意键退出!");
        getch();

        return 0;
    }
    else if(input==2)
    {
        for( Cur=Head; Cur!=NULL; Cur=Cur->Next )
        {
            New=Cur;
            pt=Cur;
            for( p=Cur->Next; p!=NULL; p=p->Next )
            {
                if( strcmp(Cur->name,p->name) >0 )
                {
                    pt=p;
                }
            }
            if( pt!=Cur )
            {
                p=New;
                Cur=pt;
            }
        }

        printf("已完成排序,按任意键退出!");
        getch();
        
        return 0;
    }

    for( Cur=Head; Cur!=NULL; Cur=Cur->Next )
    {
        New=Cur;
        pt=Cur;
        for( p=Cur->Next; p!=NULL; p=p->Next )
        {
            if( Cur->workyear > p->workyear )
            {
                pt=p;
            }
        }
        if( pt!=Cur )
        {
            p=New;
            Cur=pt;
        }
    }
    printf("已完成排序,按任意键退出!");
    getch();

    return 0;
}

TOP

re


高手们快来帮忙啊!
我秀我自己

TOP


没人看吗?!!!
我秀我自己

TOP

快来啊!
我秀我自己

TOP

我看不懂啊!
敢想敢做的人不平庸~~~~


】QQ:893 889 092

TOP

链表么……顺序存取模型啊……
一下子就想到的是插入法,是顺序存取的……快排堆排都是随机存取,不适合……
有个办法,是做一个指针数组,每个元素指向一个链表。然后对这个指针数组进行排序(快排啊堆排啊……)最后根据排序后的指针数组重构整个链表……
专心编程………
飞燕算法初级群:3996098
我的Blog

TOP

谢谢,
指针是能实现
可是要拆分,再组合
好麻烦啊!
我秀我自己

TOP

没办法,因为排序算法都是针对RAM模型的,而链表是SAM…………
专心编程………
飞燕算法初级群:3996098
我的Blog

TOP

谢谢了!
我秀我自己

TOP

还想听听
其他人的意见
我秀我自己

TOP

 11 12
发新话题