| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 265 人关注过本帖
标题:递归排序问题,看不太懂,哪位大侠能给解释解释?
只看楼主 加入收藏
hzc_13
Rank: 1
等 级:新手上路
帖 子:15
专家分:1
注 册:2012-1-31
结帖率:71.43%
收藏
已结贴  问题点数:20 回复次数:1 
递归排序问题,看不太懂,哪位大侠能给解释解释?
字符置换排序,看不太懂,对递归算法认识还是有些肤浅,哪位大侠能给解释一下,顺便介绍几本专门学习递归算法的书(简单点的),谢谢了!
void perm( char *list, int i, int n )
{
    int j, temp;
    if( i == n ){
        for( j = 0; j <= n; j++ )
             printf( "%c", list[ j ] );
        printf( "    " );
    }
    else {
          for( j = i; j <= n; j++ ){
               SWAP( list[ i ], list[ j ], temp );
               perm( list, i+1, n );
               SWAP( list[ i ], list[ j ], temp );
          }
    }   
}
搜索更多相关主题的帖子: 算法 void 
2012-03-10 23:03
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
收藏
得分:20 
这个函数既没有排序,也没有逆置,递归用错了,输出(n+1)!次……perm函数是这样的,输入数组,起始和结束,j=i,将j和i交换,递归,而i从下一个开始,所以到i=n时就会输出。但是返回的时候又换回来,然后j+1继续遍历……

酱油实习生
2012-03-11 08:59
快速回复:递归排序问题,看不太懂,哪位大侠能给解释解释?
数据加载中...
 
   



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

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