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程序设计有所帮助。

相关文章

  • SpringBoot+Vue前后端分离实现审核功能的示例

    SpringBoot+Vue前后端分离实现审核功能的示例

    在实际开发中,审核功能是一个非常常用的功能,本文就来介绍一下使用SpringBoot+Vue前后端分离实现审核功能的示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • SpringBoot yaml中的数组类型取值方式

    SpringBoot yaml中的数组类型取值方式

    这篇文章主要介绍了SpringBoot yaml中的数组类型取值方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • 基于SpringBoot接口+Redis解决用户重复提交问题

    基于SpringBoot接口+Redis解决用户重复提交问题

    当网络延迟的情况下用户多次点击submit按钮导致表单重复提交,用户提交表单后,点击浏览器的【后退】按钮回退到表单页面后进行再次提交也会出现用户重复提交,办法有很多,我这里只说一种,利用Redis的set方法搞定,需要的朋友可以参考下
    2023-10-10
  • Java递归实现迷宫游戏

    Java递归实现迷宫游戏

    这篇文章主要介绍了如何利用Java递归方法实现迷宫游戏,下面文章会详细的从为问题描述开始,清晰的解题思路以及详细的代码实现,具有一定的参考价值,需要的小伙伴可以参考一下
    2021-12-12
  • 关于springboot响应式编程整合webFlux的问题

    关于springboot响应式编程整合webFlux的问题

    在springboot2.x版本中提供了webFlux依赖模块,该模块有两种模型实现:一种是基于功能性端点的方式,另一种是基于SpringMVC注解方式,今天通过本文给大家介绍springboot响应式编程整合webFlux的问题,感兴趣的朋友一起看看吧
    2022-01-01
  • ArrayList与linkedList的用法区别及扩容方式

    ArrayList与linkedList的用法区别及扩容方式

    这篇文章主要介绍了ArrayList与linkedList的用法区别及扩容方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 一文详解Java中的监听器(Listener)

    一文详解Java中的监听器(Listener)

    这篇文章主要介绍了Java中监听器(Listener)的相关资料,监听器模式是一种设计模式,用于处理异步事件和通知,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • java自己手动控制kafka的offset操作

    java自己手动控制kafka的offset操作

    这篇文章主要介绍了java自己手动控制kafka的offset操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Java中常用的设计模式之单例模式详解

    Java中常用的设计模式之单例模式详解

    这篇文章主要为大家详细介绍了Java中常用的设计模式之单例模式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • spring级联属性赋值的两种方式解析

    spring级联属性赋值的两种方式解析

    这篇文章主要介绍了spring级联属性赋值的两种方式解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01

最新评论