当柳上原的风吹向天际的时候...

真正的快乐来源于创造

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks
package com.heyang;

/**
 * 诸葛亮要派出五虎上将中的三员执行任务,请列出所有可能的组合
 * 
@author 何杨(heyang78@gmail.com)
 *
 * 
@since 2009-2-11 上午08:29:25
 * 
@version 1.00
 
*/

public class Combiner {
    
static char[] arr={'','','','',''};

    
public static void main(String[] args) {
        
int[] arr = new int[3];
        combine(
53, arr);
    }


    
public static void combine(int total, int chooseCount, int selectedArr[]) {
        
for (int i = total; i >= chooseCount; i--){
            selectedArr[chooseCount 
- 1= i - 1;
            
            
if (chooseCount > 1){
                combine(i 
- 1, chooseCount - 1, selectedArr);
            }

            
else 
            
{
                
for (int j = selectedArr.length - 1; j >= 0; j--{
                    System.out.print(arr[selectedArr[j]] 
+ ",");
                }

                System.out.println();
            }

        }

    }

}


结果:
 1黄,马,赵,
 2黄,马,张,
 3黄,马,关,
 4黄,赵,张,
 5黄,赵,关,
 6黄,张,关,
 7马,赵,张,
 8马,赵,关,
 9马,张,关,
10赵,张,关,

排列代码:
package com.heyang;

/**
 * 全排列代码
 * 赵钱孙李四人排队,求所有排队方案
 * 
 * 
@author 何杨(heyang78@gmail.com)
 *
 * 
@since 2009-2-11 下午01:26:45
 * 
@version 1.00
 
*/

public class Permutation{
    
public static void main(String[] args){
        Character[] arr
={'','','',''};
        permutation(arr,
0,arr.length);
    }

    
    
public static void permutation(Object[] arr,int start,int end){
        
if(start<end+1){
            permutation(arr,start
+1,end);
            
            
for(int i=start+1;i<end;i++){
                Object temp;
                
                temp
=arr[start];
                arr[start]
=arr[i];
                arr[i]
=temp;
                
                permutation(arr,start
+1,end);
                
                temp
=arr[i];
                arr[i]
=arr[start];
                arr[start]
=temp;
            }

        }

        
else{
            
for(int i=0;i<end;i++){
                System.out.print(arr[i]);
            }

            System.out.print(
"\n");
        }

    }

}


排列结果:
 1赵钱孙李
 2赵钱李孙
 3赵孙钱李
 4赵孙李钱
 5赵李孙钱
 6赵李钱孙
 7钱赵孙李
 8钱赵李孙
 9钱孙赵李
10钱孙李赵
11钱李孙赵
12钱李赵孙
13孙钱赵李
14孙钱李赵
15孙赵钱李
16孙赵李钱
17孙李赵钱
18孙李钱赵
19李钱孙赵
20李钱赵孙
21李孙钱赵
22李孙赵钱
23李赵孙钱
24李赵钱孙
posted on 2009-02-11 08:32 何杨 阅读(269) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: