当前位置:首页 » 编程语言 » java排列组合

java排列组合

发布时间: 2025-05-26 09:44:53

A. 用java写一个a,b,c,d,e排列组合算法,谢谢了

public class Paixu {
public static void main(String[] args) {
char[] in = "abcde".toCharArray();

new Paixu().paixu(in, in.length, 0);
}

private void paixu(char[] array, int n, int k) {
if (n == k) {
char[] out = new char[n];
for (int i = 0; i < array.length; i++) {
out[i] = array[i];
}
System.out.println(new String(out));
} else {
for (int i = k; i < n; i++) {
swap(array, k, i);
paixu(array, n, k + 1);
swap(array, i, k);
}
}
}

private void swap(char[] a, int x, int y) {
char temp = a[x];
a[x] = a[y];
a[y] = temp;
}
}

B. 用JAVA写一个a,b,c,d,e排列组合算法,谢谢了

publicnbsp;classnbsp;Paixunbsp;{nbsp;publicnbsp;staticnbsp;voidnbsp;main(String[]nbsp;args)nbsp;{nbsp;nbsp;char[]nbsp;innbsp;=nbsp;“abcde“.toCharArray();nbsp;nbsp;newnbsp;Paixu().paixu(in,nbsp;in.length,nbsp;0);nbsp;}nbsp;privatenbsp;voidnbsp;paixu(char[]nbsp;array,nbsp;intnbsp;n,nbsp;intnbsp;k)nbsp;{nbsp;nbsp;ifnbsp;(nnbsp;==nbsp;k)nbsp;{nbsp;nbsp;nbsp;char[]nbsp;outnbsp;=nbsp;newnbsp;char[n];nbsp;nbsp;nbsp;fornbsp;(intnbsp;inbsp;=nbsp;0;nbsp;inbsp;amp;lt;nbsp;array.length;nbsp;i++)nbsp;{nbsp;nbsp;nbsp;nbsp;out[i]nbsp;=nbsp;array[i];nbsp;nbsp;nbsp;}nbsp;nbsp;nbsp;System.out.println(newnbsp;String(out));nbsp;nbsp;}nbsp;elsenbsp;{nbsp;nbsp;nbsp;fornbsp;(intnbsp;inbsp;=nbsp;k;nbsp;inbsp;amp;lt;nbsp;n;nbsp;i++)nbsp;{nbsp;nbsp;nbsp;nbsp;swap(array,nbsp;k,nbsp;i);nbsp;nbsp;nbsp;nbsp;paixu(array,nbsp;n,nbsp;knbsp;+nbsp;1);nbsp;nbsp;nbsp;nbsp;swap(array,nbsp;i,nbsp;k);nbsp;nbsp;nbsp;}nbsp;nbsp;}nbsp;}nbsp;privatenbsp;voidnbsp;swap(char[]nbsp;a,nbsp;intnbsp;x,nbsp;intnbsp;y)nbsp;{nbsp;nbsp;charnbsp;tempnbsp;=nbsp;a[x];nbsp;nbsp;a[x]nbsp;=nbsp;a[y];nbsp;nbsp;a[y]nbsp;=nbsp;temp;nbsp;}}

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

importstaticjava.lang.System.*;
importjava.util.*;
publicclassTest{
publicstaticvoidmain(String...args){
ArrayList<String>l=newArrayList<String>();
out.println("请输入要排序的字母,输入$结束:");
while(true){
Scannersc=newScanner(in);
Stringstr=sc.nextLine();
if(str.equals("$"))break;
else
l.add(str);

}
Strings="";
System.out.println(s.isEmpty());
f(s,l);
}
staticvoidf(Strings,ArrayList<String>l){
if(s.isEmpty()){
for(inti=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=newchar[1];
c[0]=s.charAt(s.length()-1);
Stringstr=newString(c);
for(inti=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);
}
}
}
}
纯手打实验过了可以用..望采纳,有不懂的欢迎发问

D. java算法问题 排列组合 给定一组字符串,产生所有可能的集合

这是我写的一个取组合的方法:
package Combination.c3;
import java.util.ArrayList;
import java.util.List;

public class Combinations {

/*
* 设有n个元素,组合数量有2的n次方种。
* 对 0 到 2的n次方-1 中的每个数,考察其二进制位形式,位数为1代表相应元素加入
* 到组合,0则不加入该元素至组合。
*
* 取组合方法
* 参数: list ---- 原始数组
* 返回: 包含所有组合数组的数组
*/
public static List<List<Object>> getCombinations(List<Object> list) {
List<List<Object>> result = new ArrayList<List<Object>>();
long n = (long)Math.pow(2,list.size());
List<Object> combine;
for (long l=0L; l<n; l++) {
combine = new ArrayList<Object>();
for (int i=0; i<list.size(); i++) {
if ((l>>>i&1) == 1)
combine.add(list.get(i));
}
result.add(combine);
}
return result;
}

//测试
public static void main(String[] args) {
ArrayList<Object> list = new ArrayList<Object>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
list.add("f");
list.add("g");
list.add("h");
list.add("i");
list.add("j");

List<List<Object>> result = getCombinations(list);
System.out.println(list.toString());
System.out.println(result.toString());
}

}

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:593
制作脚本网站 发布:2025-10-20 08:17:34 浏览:888
python中的init方法 发布:2025-10-20 08:17:33 浏览:582
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:765
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:684
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1013
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:255
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:114
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:806
python股票数据获取 发布:2025-10-20 07:39:44 浏览:713