| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 643 人关注过本帖
标题:问一个算法问题(我个人感觉不是很简单)
只看楼主 加入收藏
doublekill98
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-5-19
结帖率:50%
收藏
已结贴  问题点数:15 回复次数:2 
问一个算法问题(我个人感觉不是很简单)
问题很简单,给出1到n   n个整数,请把这些数的所有出现顺序可能列出来。比如:n=9,即把1到9九个数的所有出现顺序情况列出来。可能是123456789,也可能是654123987或其它情况,总之要求全部列出来。请大家思考思考,锻炼大家的思维!
搜索更多相关主题的帖子: 算法 感觉 
2010-05-21 11:31
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:7 
程序代码:
import java.util.*;

public class Permutation {
    public int  count=0;   //统计总共排列数
    public void  permutate(String[] array,int i,int j){  //排列递归算法,排列下标从i--j
        if(i>j){             //下标i大于j说明已完成一次排列       
            count++;
            for(int k=0;k<array.length;k++){
                System.out.print(array[k]+"  ");
            }
        System.out.println();
        }else{                        //否则分别将i--j的数据与下标为i的位置交换数据,构成前缀,再全排列i+1---j的
            for(int x=i;x<array.length;x++){
                swap(array,i,x); 
                permutate(array,i+1,j);
                swap(array,x,i);  //一种情况完成,要恢复
            }
        }
    } 

    public void swap(String[] array,int m,int n){
        String t;
        t=array[m];
        array[m]=array[n];
        array[n]=t;
    } 

    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        System.out.print("n=?");
        int n = in.nextInt();
        String[] test = new String[n];
        for(int i=0;i<n;i++) {
            test[i] = ""+(i+1);
        }
        Permutation permutation = new Permutation();
        permutation.permutate(test,0,n-1); //从下标0--n-1
        System.out.println("总共有"+permutation.count+"种排列");
    }
} 


[ 本帖最后由 lampeter123 于 2010-5-22 14:01 编辑 ]

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2010-05-22 13:51
QQ250278525
Rank: 1
等 级:新手上路
帖 子:5
专家分:9
注 册:2010-5-12
收藏
得分:7 
漂亮!我也找了很久了,谢谢楼上的 还有楼主
2010-05-23 21:40
快速回复:问一个算法问题(我个人感觉不是很简单)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012018 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved