当前位置:首页 » 编程语言 » 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());
}

}

热点内容
速派压缩比 发布:2025-05-28 02:12:51 浏览:62
linux复制到本地 发布:2025-05-28 02:11:13 浏览:255
云服务器网络类型 发布:2025-05-28 02:10:30 浏览:883
服务器怎么上锁 发布:2025-05-28 02:00:11 浏览:421
苹果如何一个密码一个界面 发布:2025-05-28 01:53:04 浏览:382
静态ip服务器费用 发布:2025-05-28 01:53:03 浏览:429
学校学编程 发布:2025-05-28 01:52:17 浏览:258
大数据网管运营数据存储模式研究 发布:2025-05-28 01:52:17 浏览:3
g4660这配置如何 发布:2025-05-28 01:52:17 浏览:212
电脑编程课程 发布:2025-05-28 01:39:10 浏览:832