标题:链表排序_想换个方法
只看楼主
qwermy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:34
专家分:160
注 册:2011-12-3
结帖率:100%
已结贴  问题点数:20 回复次数:1 
链表排序_想换个方法
程序代码:
typedef struct data DATA_base;            
DATA_base * list_sort( DATA_base *head )   //排序
{
    DATA_base *p, *p1, *p2, *temp;   
    int i = 1;

    temp = ( DATA_base * ) malloc( sizeof(DATA_base) );
    temp->next = head;
    while( i )
    {
        i = 0;
        p = temp;
        p1 = p->next;
        for( p2 = p1->next; p2 != NULL; p2 = p2->next)
        if( p2->num < p1->num )
        {
            p1->next = p2->next;           
            p->next = p2;
            p2->next = p1;
            p = p2;
            i++;
        }
        else
        {
            p = p->next;
            p1 = p1->next;
        }
    }
    head = temp->next;
    return head;
}
感觉自己这程序 有隐患。我想换个方法。想半天 有点  哪个大侠帮下。
顺便问下,这样的程序有返回值好些,还是没返回值好。..

[ 本帖最后由 qwermy 于 2012-2-24 23:39 编辑 ]
搜索更多相关主题的帖子: head next 
2012-02-24 22:44
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
得分:20 
这不是冒泡嘛……可以换成归并或者快速,都是很好的排序方法
收到的鲜花
  • qwermy2012-02-26 12:01 送鲜花  5朵   附言:谢谢

酱油实习生
2012-02-26 00:09



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-361586-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017496 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved