zoukankan      html  css  js  c++  java
  • java 全排列

    全排列是一个很简单的数学问题,但是要把它用程序实现,确实要费点思路。思考了一个小时,才用递归实现了它。代码很简单,但是要思考每一步的流程,确实要花费一点时间,再一次证明分治和递归的强大。

    import java.util.Arrays;
        public class test {
            public static void main(String[] args) {
                int [] array={1,2,3};
                permutation(array, 0);
            }
            /*
              1、将当前元素与后面位置的每个元素依此交换
               2、交换后取后一个位置的元素为当前元素的位置,再执行1
               3、当当前位置是最后一个元素的位置则输出
             */
            public static void permutation(int[] array,int start){
                if(start==array.length-1){//表示只有一个字符,返回
                    System.out.println(Arrays.toString(array));
                }else{
                    for(int i=start;i<array.length;i++){
                        swap(array, start,i);//当前位置元素与后面位置的元素依次替换
                        permutation(array, start+1);
                        swap(array,start,i);//将位置换回来,继续做下一个排列
                    }
                }
            }
            public static void swap(int [] array,int s,int i){
                int temp=array[s];
                array[s]=array[i];
                array[i]=temp;
            }
        }
  • 相关阅读:
    毕业设计-1.11
    毕业设计-1.10
    毕业设计-1.09
    毕业设计-1.08
    毕业设计-1.07
    [工具]Maven的安装和配置【MyEclipse】
    毕业设计-1.06
    tomcat部署项目时省略项目名
    Jenkins实现iOS项目自动化打包(含踩坑记录)
    钉钉小程序封装网络请求
  • 原文地址:https://www.cnblogs.com/wkyhky/p/9978479.html
Copyright © 2011-2022 走看看