A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 王中利 于 2012-10-3 22:33 编辑

任意数字序列,输出它们所有的排列组合代码怎么写?

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

1 个回复

倒序浏览
  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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马