链表排序

Posted h694879357

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了链表排序相关的知识,希望对你有一定的参考价值。

 

1、冒泡排序

 

void Sort(List &L)
{
    List r,q;
    r= L->next;
    List p = new LNode;
    p->next = NULL;
    for (q=L->next;q;q=q->next)//for(int i=0;i<num;i++)
    {
        for (r=L->next;r->next; r=r->next)
        {
            
            if (r->books.price < r->next->books.price)
            {
                p->books = r->next->books;
                r->next->books = r->books;
                r->books = p->books;
            }
        
        }
    }
}
或者
for (int i=0;i<num;i++)
    {
        r = L->next;
        for (int j=0;j<num-i-1;j++)
        {
            
            if (r->books.price < r->next->books.price)
            {
                p->books = r->next->books;
                r->next->books = r->books;
                r->books = p->books;
            }
            r = r->next;
        }
    }

 

 

2、快排

 

以上是关于链表排序的主要内容,如果未能解决你的问题,请参考以下文章

常见的链表排序(Java版)

代码的鲁棒性:合并两个排序的链表

代码模板实现双向链表的去重拼接合并排序

25 合并两个排序的链表(第3章 高质量的代码-代码的鲁棒性)

链表归并排序

链表归并排序