⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fac2_4_1.java

📁 java 算法设计与分析的好资料.由王晓东先生主编.
💻 JAVA
字号:
//本程序取自王晓东编著“算法分析与设计”第 21 页,例2-4
//排列问题的递归解法
 import java.io.*;
 class MyMath{
    public MyMath(){
   }
   static void swap(double[] a,int i,int j)
  {
   double temp;   
   temp=a[i];
   a[i]=a[j];
   a[j]=temp;}
 }
 public class Fac2_4_1{
    static int j=0;
  public static void perm(double[] list ,int k,int m)
 {  //产生lisi[k:m]的所有排列
    if(k==m)
  {//单元素序列
    j++;
    for(int i=0;i<=m;i++)
    System.out.print(list[i]+"  ");
    System.out.println(" 排列序号"+j);
  }
   else
  // 多元素序列,递归产生排序
   for(int i=k;i<=m;i++)  //把最小的元素放在最前面
    {
    MyMath.swap(list,k,i);
    perm(list,k+1,m);
    MyMath.swap(list,k,i);
   }
 }

  public static void main(String args[])throws IOException 
 {
  InputStreamReader iin=new InputStreamReader(System.in);
  BufferedReader bin=new BufferedReader(iin); 
   int n;
   System.out.println("输入予排序元素个数  n ");  
   n=Integer.parseInt(bin.readLine());
   double a[]=new double[n];
   for(int i=0;i<n;i++)
   a[i]=Double.parseDouble(bin.readLine());
   System.out.println("输出予排序元素");
   for(int i=0;i<n;i++)
   System.out.print(a[i]+"   ");
   System.out.println();
   int x=a.length-1;
   int y=0;
   System.out.println("输出排序结果");
   perm(a,y,x);
 }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -