首页 > 编程语言 > 详细

java数组全排列

时间:2015-12-10 13:14:22      阅读:122      评论:0      收藏:0      [点我收藏+]
import java.util.Arrays;
/**
 * 获得数组全排列的一个实现算法
 * 
 * @author 老紫竹的家(laozizhu.com)
 * 
 */
public class Test {
  static String[] array = { "x", "y", "z" };
  public static void main(String[] args) {
    getAllOrder(0, array.length - 1);
  }
  public static void getAllOrder(int begin, int end) {
    if (begin == end) {
      check();
    } else {
      for (int i = begin; i <= end; i++) {
        // 交换数据
        swap(begin, i);
        getAllOrder(begin + 1, end);
        swap(i, begin);
      }
    }
  }
  public static void swap(int from, int to) {
    // 这里应该加上各种防止无效交换的情况
    // 比如位置相同,或者2个位置的数据相同
    if (from == to) {
      return;
    }
    String tmp = array[from];
    array[from] = array[to];
    array[to] = tmp;
  }
  public static void check() {
    // 排列拿到了,可以进行你的判断了。
    System.out.println(Arrays.toString(array));
  }
}

 

java数组全排列

原文:http://www.cnblogs.com/szhaos/p/5035579.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!