用C语言实现的对单链表进行快速排序的算法

typedef struct LinkNode
{
    int data;
    struct LinkNode *next;

} LinkNode, *LinkList;
void quickSortLinkList(LinkList list,LinkNode *end)
{
    LinkNode * p = list;
    LinkNode *refer = p->next;
    if(list->next ==end)
        return;
    while(p->next!=end)
    {
        if(p->next->data < refer->data)  //小于就是升序 大于就是降序
        {
            LinkNode *listnext = list->next;
            list->next = p->next;
            LinkNode* pnextnext = p->next->next;
            p->next->next  = listnext;
            p->next = pnextnext;
        }
        else
            p=p->next;
    }
    quickSortLinkList(list,refer);
    quickSortLinkList(refer,NULL);
}

int main()
{
    LinkList *list ;
    /*
    此处给链表赋值
                    */
    quickSortLinkList(list,NULL);
}

 

posted @ 2022-11-01 18:00  我月了  阅读(91)  评论(0)    收藏  举报