全排列
题目:给出三个字符,求它们的全排列 , 比如 a , b , c 应该输出 abc acb bac bca cab cba六种
public static void permutation(char[] str , int first,int end) { //输出str[first..end]的所有排列方式 //完成一次排列 if(first == end) { //输出一个排列方式 for(int j=0; j<= end ;j++) { System.out.print(str.toString()); } System.out.println(); } // a b c i = 0到2 // i = 0 1. abc i = 1 到 2 for(int i = first; i <= end ; i++) { swap(str, i, first); permutation(str, first+1, end); //固定好当前一位,继续排列后面的 swap(str, i, first); } } private static void swap(char[] str, int i, int first) { char tmp; tmp = str[first]; str[first] = str[i]; str[i] = tmp; } public static void main(String[] args) { char[] str = {'a', 'b', 'c',}; permutation(str, 0, 2); }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步