六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 51|回复: 0

全排序

[复制链接]

升级  46%

5

主题

5

主题

5

主题

童生

Rank: 1

积分
23
 楼主| 发表于 2013-1-27 05:08:49 | 显示全部楼层 |阅读模式
关于全排序的方法很多,这个是根据组合学算法得出的自我认为还是比较高效的算法。
算法的基本方法是现通过排序,在根据组合算法得到该序列的下一个字典序列。一下代码为取得下一个序列的源代码,在C++的STL库中,也有该方法,但是频繁调用效率会很低,当需要的时候,还是自己写个好……

public  boolean next_permutation(StringBuffer str){        int i,j;        for(i=str.length()-1;i>0;i--){            if(str.charAt(i-1)<str.charAt(i))                break;        }            if(i==0)return false;            for(j=str.length()-1;;j--){            if(str.charAt(j)>str.charAt(i-1) )break;            }            swap(str,i-1,j);        for(j=str.length()-1;i<j;i++,j--){            swap(str,i,j);        }            return true;    }
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表