| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 404 人关注过本帖
标题:链表排序_想换个方法
只看楼主 加入收藏
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
快速回复:链表排序_想换个方法
数据加载中...
 
   



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

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