黑马程序员技术交流社区

标题: 任意数字序列,输出它们所有的排列组合 [打印本页]

作者: 王中利    时间: 2012-10-2 23:28
标题: 任意数字序列,输出它们所有的排列组合
本帖最后由 王中利 于 2012-10-3 22:33 编辑

任意数字序列,输出它们所有的排列组合代码怎么写?
作者: 柏占肖    时间: 2012-10-3 17:16
  1. public class Rank {
  2.         public static void main(String[] args) {
  3.                 int[] array = { 7, 9, 5, 8 };
  4.                 boolean[] isSelected = new boolean[array.length];
  5.                 int[] array2 = new int[array.length];
  6.                 for (int i = 0; i < isSelected.length; i++) {
  7.                         isSelected[i] = false;
  8.                 }
  9.                 rankArray(array, isSelected, array2, 0);
  10.         }

  11.         public static void rankArray(int[] array, boolean[] isSelected,
  12.                         int[] array2, int length) {

  13.                 if (array.length == length) {
  14.                         for (int i : array2) {
  15.                                 System.out.print(i + ",");
  16.                         }
  17.                         System.out.println();
  18.                         return;
  19.                 }
  20.                 for (int i = 0; i < isSelected.length; i++) {
  21.                         if (isSelected[i]) {
  22.                                 continue;
  23.                         }
  24.                         isSelected[i] = true;
  25.                         array2[length] = array[i];
  26.                         rankArray(array, isSelected, array2, length + 1);
  27.                         isSelected[i] = false;
  28.                 }
  29.         }
  30. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2