栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

字典序全排列题解(Java实现,以北京大学考研机试题为例)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

字典序全排列题解(Java实现,以北京大学考研机试题为例)

文章目录

题目分析(需要结合我之前上一篇全排列文章来看)代码实现运行结果

题目

分析(需要结合我之前上一篇全排列文章来看)

在之前全排列的文章进行进一步理解
之前的文章全排列是只交换起始位置和待排在第一位的元素进行互换,而其他元素不变,待第一趟全排列之后再回溯之前交换的元素位置。而这次题目要求的字典序全排列则是多了一个需求,即是在交换的起始元素位置和待交换元素的位置之间数组依次左移,相对应在一次排列后就要换成右移。

代码实现
import java.util.*;
public class Main{
    static void perm(char a[],int p,int q){
        if(p==q){
            for(int i=0;i=p;k--){
                    a[k+1]=a[k];
                }
                a[p] = temp;
                
                perm(a,p+1,q);
                
                char temp1 = a[p];
                // a[i] = a[p];
                for(int k=p+1;k<=i;k++){
                    a[k-1] = a[k];
                }
                a[i] = temp1;
            }
        }
    }
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        char a[] = s.toCharArray();
        perm(a,0,a.length);
    }
}
运行结果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/762686.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号