Java实现字符数组全排列的方法

 更新时间:2015年12月21日 15:17:20   作者:ronniewang1993  
这篇文章主要介绍了Java实现字符数组全排列的方法,涉及Java针对字符数组的遍历及排序算法的实现技巧,需要的朋友可以参考下

本文实例讲述了Java实现字符数组全排列的方法。分享给大家供大家参考,具体如下:

import org.junit.Test;
public class AllSort {
 public void permutation(char[] buf, int start, int end) {
  if (start == end) {// 当只要求对数组中一个字母进行全排列时,只要就按该数组输出即可
   for (int i = 0; i <= end; i++) {
    System.out.print(buf[i]);
   }
   System.out.println();
  } else {// 多个字母全排列
   for (int i = start; i <= end; i++) {
    char temp = buf[start];// 交换数组第一个元素与后续的元素
    buf[start] = buf[i];
    buf[i] = temp;
    permutation(buf, start + 1, end);// 后续元素递归全排列
    temp = buf[start];// 将交换后的数组还原
    buf[start] = buf[i];
    buf[i] = temp;
   }
  }
 }
 @Test
 public void testPermutation() throws Exception {
  char[] buf = new char[] { 'a', 'b', 'c' };
  permutation(buf, 0, 2);
 } 
}

运行测试,输出结果:

abc
acb
bac
bca
cba
cab

希望本文所述对大家Java程序设计有所帮助。

相关文章

  • 深入理解Spring MVC概要与环境配置

    深入理解Spring MVC概要与环境配置

    本篇文章主要介绍了深入理解Spring MVC概要与环境配置 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • SpringBoot与Spring中数据缓存Cache超详细讲解

    SpringBoot与Spring中数据缓存Cache超详细讲解

    我们知道内存读取速度远大于硬盘读取速度,当需要重复获取相同数据时,一次一次的请求数据库或者远程服务,导致在数据库查询或者远程方法调用上小号大量的时间,最终导致程序性能降低,这就是数据缓存要解决的问题,学过计算机组成原理或者操作系统的同学们应该比较熟悉
    2022-10-10
  • Java背包问题求解实例代码

    Java背包问题求解实例代码

    这篇文章主要介绍了Java背包问题求解实例代码,其中涉及两种背包:01和完全背包。分别讲述了两种背包的思路和实现方法,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • Spring-webflux访问关系型数据库实战

    Spring-webflux访问关系型数据库实战

    这篇文章主要为大家介绍了Spring-webflux访问关系型数据库实战详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • Spring Security LDAP实现身份验证的项目实践

    Spring Security LDAP实现身份验证的项目实践

    在本文中,我们涵盖了“使用 Spring Boot 的 Spring Security LDAP 身份验证示例”的所有理论和示例部分,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • Java中BeanUtils.copyProperties的11个坑总结

    Java中BeanUtils.copyProperties的11个坑总结

    我们日常开发中,经常涉及到DO、DTO、VO对象属性拷贝赋值,很容易想到org.springframework.beans.BeanUtils的copyProperties,它会自动通过反射机制获取源对象和目标对象的属性,pyProperties,会有好几个坑呢,本文将给大家总结一下遇到的坑,需要的朋友可以参考下
    2023-05-05
  • 三道MySQL新手入门面试题,通往自由的道路

    三道MySQL新手入门面试题,通往自由的道路

    这篇文章主要为大家分享了最有价值的3道MySQL面试题,,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • spring-boot-starter-parent的作用详解

    spring-boot-starter-parent的作用详解

    这篇文章主要介绍了spring-boot-starter-parent的作用详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • SkyWalking 自定义插件(Spring RabbitMQ)具体分析过程

    SkyWalking 自定义插件(Spring RabbitMQ)具体分析过程

    这篇文章主要介绍了SkyWalking 自定义插件(Spring RabbitMQ)具体分析过程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • SpringBoot初始化接口CommandLineRunner示例详解

    SpringBoot初始化接口CommandLineRunner示例详解

    这篇文章主要介绍了SpringBoot初始化接口CommandLineRunner,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07

最新评论