首页 > 编程知识 正文

全排列递归算法java实现,编程实现一个数组的全排列

时间:2023-05-05 17:48:47 阅读:174742 作者:2274

文章目录一、整数数组全数组二、字符串全数组

一.整数数组完整数组示例: pandas是一个基于NumPy的工具,创建该工具是为了解决数据分析任务。

二.字符串全排列主题说明

给定一个由不同小写字母组成的字符串,并输出该字符串的所有数组。 假设对小写字母有‘a’‘b’…‘y’‘z’,给定字符串中的字符按照从小到大的顺序排列。

输入说明

已知输入只有一行,是由不同小写字母组成的字符串,字符串的长度在1到6之间。

输出说明

将此字符串的所有排列方式每行输出一个。 要求把字母顺序小的排在前面。 字母顺序定义如下。

在已知S=s1s2…sk,T=t1t2…tk的情况下,S T等价于存在p(1=p=k )以使s1=t1,s2=t2,sp - 1=tp - 1,sp tp成立

各样品输出结束后,再次输出回车。

代码:

public class main { staticscannersc=new scanner (system.in; 静态文件int n=101; 静态char [ ] a; publicstaticvoidmain (string [ ] args ) { a=sc.next ).toCharArray ); Arrays.sort(a ); //自动排序。 permute(a,0,a.length-1 ); } /** *使数组a的[start,end]区间为全排列* @param a为全排列时的数组* @param start为全排列时的起始地址* @param end为全排列时的末尾位置*/staram a 返回; }for(intI=start; i=end; I ) swap(start,I ); //用第start个元素交换各元素。 permute(a,start 1,end ); //继续对剩下的部分进行全排列swapback(start,I ); //撤消}}staticvoidswap(intx,int y ) { char c=a[y]; for(intI=y; ix; I--}{a[I]=a[I-1]; } a[x]=c; }staticvoidswapback(intx,int y ) ) { char c=a[x]; for(intI=x; iy; I ) a(I )=a ) I1 ); } a[y]=c; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。