java排列组合的算法 譬如我有(A,B,C,D),我想输出的结果是

{A,B,C,D}{AB},{AC},{AD},{BC},{BD},{CD}{ABC},{ABD},{ACD},{BCD}{ABCD}各位大神有会做的吗?... {A,B,C,D}
{AB},{AC},{AD},{BC},{BD},{CD}
{ABC},{ABD},{ACD},{BCD}
{ABCD}
各位大神有会做的吗?
展开
 我来答
a752043837
2013-10-31 · TA获得超过168个赞
知道答主
回答量:47
采纳率:0%
帮助的人:33.3万
展开全部
我觉得可以看成数字的排列如 1 2 3 4分别代表A B C D
就是将1 2 3 4排列
四位的就是1234
三位的就是从这四个数字中取出三个数字,得到的三位数是最小的,如:
取 1 2 3 可以得到123 213 321 132等等 其中123是最小的
两为数字的跟三位数字的一样
追问
我想要java算法
响亮的ITdog
2013-10-31 · TA获得超过167个赞
知道小有建树答主
回答量:122
采纳率:0%
帮助的人:97.2万
展开全部
import static java.lang.System.*;
import java.util.*;
public class Test{
 public static void main(String...args){
  ArrayList<String> l=new ArrayList<String>();
  out.println("请输入要排序的字母,输入$结束:");
  while(true){
   Scanner sc=new Scanner(in);
   String str=sc.nextLine();
   if(str.equals("$"))break;
   else 
    l.add(str);
   
  }
  String s="";
  System.out.println(s.isEmpty());
  f(s,l);
 }
 static void f(String s,ArrayList<String> l){
  if(s.isEmpty()){
   for(int i=0;i<l.size();i++){
    out.println(s+l.get(i));
    if(i==l.size()-1)return;
    f(s+l.get(i),l);
   }
  }else{
   char[]c=new char[1];
   c[0]=s.charAt(s.length()-1);
   String str=new String(c);
   for(int i=l.lastIndexOf(str);i<l.size();i++){
    out.println(s+l.get(i+1));
    if(i==l.size()-2)return;
    f(s+l.get(i+1),l);
   }
  }
 }

纯手打 实验过了可以用..望采纳,有不懂的欢迎发问
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aspwolf1470
2013-10-31 · TA获得超过2643个赞
知道小有建树答主
回答量:1287
采纳率:0%
帮助的人:1256万
展开全部
可以这样,
1、取1个元素形成集合,输出;
2、在前一步的基础上加入一个不重复的元素,输出所有可能性;
3、重复2步骤,直到所有元素都加进去了,输出;
4、对输出去重。
或者倒过来
1、把所有元素加入集合,输出;
2、在前一步的基础上移走一个元素,输出所有可能性;
3、重复2步骤,直到没有元素可以移走了,输出;
4、对输出去重
追问
最后就有算法参考一下啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tjuzyp
2013-10-31 · TA获得超过199个赞
知道答主
回答量:118
采纳率:100%
帮助的人:32万
展开全部

然后广度遍历,记录路径。。。。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dreamhappens
2013-10-31
知道答主
回答量:18
采纳率:0%
帮助的人:7.5万
展开全部
},{AC},{AD},{BC},{BD},{CD}
{ABC},{ABD},{ACD},{BCD}
{ABCD}
各位大神有会做的吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式