package lianxi;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
public class c {
public static void main(String[] args)
{
//将排列好的数组当作一个key值存在hashset中
//然后将hashset中的值输出
int[] a={1,2,1,1};
fullsort(a, 0 ,a.length-1);
System.out.println(hs);
}
//交换函数
public static void swap(int[] a,int i,int j)
{
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
//全排列
static HashSet<String> hs=new HashSet();
public static void fullsort(int[] arrays,int start,int end)
{
if(start==end)
{
//将arrays数组并转化为字符串
//将字符串存在hashset中
// 遍历
hs.add(Arrays.toString(arrays));
}
else
{
for(int i=start;i<=end;i++)
{
swap(arrays,start,i);
fullsort(arrays,start+1,end);
swap(arrays,start,i);
}
}
}
}
对带有重复数字的字符(字母,数字)进行全排列
最新推荐文章于 2022-07-03 17:12:25 发布