「java排列保存」java生成全排列

博主:adminadmin 2023-01-21 06:39:06 426

本篇文章给大家谈谈java排列保存,以及java生成全排列对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java全排列 数组

全排列算法很多,这是其中一个,使用递归——

import java.util.ArrayList;

import java.util.List;

public class PermAComb {

    static Listint[] allSorts = new ArrayListint[]();

       

    public static void permutation(int[] nums, int start, int end) {

        if (start == end) { // 当只要求对数组中一个数字进行全排列时,只要就按该数组输出即可

            int[] newNums = new int[nums.length]; // 为新的排列创建一个数组容器

            for (int i=0; i=end; i++) {

                newNums[i] = nums[i];

            }

            allSorts.add(newNums); // 将新的排列组合存放起来

        } else {

            for (int i=start; i=end; i++) {

                int temp = nums

本篇文章给大家谈谈java排列保存,以及java生成全排列对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

; // 交换数组第一个元素与后续的元素

                nums

本篇文章给大家谈谈java排列保存,以及java生成全排列对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

= nums[i];

                nums[i] = temp;

                permutation(nums, start + 1, end); // 后续元素递归全排列

                nums[i] = nums

本篇文章给大家谈谈java排列保存,以及java生成全排列对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

; // 将交换后的数组还原

                nums

本篇文章给大家谈谈java排列保存,以及java生成全排列对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

= temp;

            }

        }

    }

       

    public static void main(String[] args) {

        int[] numArray = {1, 2, 3, 4, 5, 6};

        permutation(numArray, 0, numArray.length - 1);

        int[][] a = new int[allSorts.size()][]; // 你要的二维数组a

        allSorts.toArray(a);

           

        // 打印验证

        for (int i=0; ia.length; i++) {

            int[] nums = a[i];

            for (int j=0; jnums.length; j++) {

                System.out.print(nums[j]);

            }

            System.out.println();

        }

        System.out.println(a.length);

    }

}

java,数组问题:有一组英文歌曲,按照歌曲名称的字母顺序从“A”到"Z"顺序排列,保存在一个数组中。

你的Java程序的第一个for循环中的语句nummusics=musics;把musics数组的引用赋给了nummusics数组,实际上让数组nummusics和musics数组一样了,它们的大小也一样了,所以应该把nummusics=musics;改成数组元素赋值nummusics[i]=musics[i];

还有一点就是打印插入前的数组应该打印musics数组,而不是nummusics数组.

完整的Java程序如下(改动的地方见注释)

import java.util.Scanner;

public class taks4 {

 public static void main(String[] args) {

  Scanner input=new Scanner(System.in);

  String[] musics=new String[]{"Island","Ocean","Pretty","Sun"};

  String[] nummusics=new String[musics.length+1];

  int index=0;

  String music="";

  System.out.print("插入前的数组:");

  for(int i=0;imusics.length;i++){

   nummusics[i]=musics[i];//这里把nummusics=musics;改成nummusics[i]=musics[i];

  }

  for(int i=0;imusics.length;i++){//这里把inummusics.length;改成imusics.length;

   System.out.print(musics[i]+" ");//这里把nummusics[i]+" "改成musics[i]+" "

  }

  System.out.println("");

  System.out.print("请输入新的单词");

  music=input.nextLine();

  System.out.print("插入前新单词的下标:");

  for(int i=0;inummusics.length;i++){

   if(nummusics[i].compareToIgnoreCase(music)0){

    index=i;

    break;

   }

  }

  System.out.println(index);

  for(int i=nummusics.length-1;iindex;i--){

   nummusics[i]=nummusics[i-1];

  }

  nummusics[index]=music;

  System.out.print("插入后的数组:");

  for(int i=0;inummusics.length;i++){

   System.out.print(nummusics[i]+" ");  

  }

 }

}

运行结果

插入前的数组:Island Ocean Pretty Sun

请输入新的单词kk

插入前新单词的下标:1

插入后的数组:Island kk Ocean Pretty Sun

用java!!输入五个数,保存到一个数组中,然后将这五个数字进行从小到大的排列 采用冒泡排序法

Java输入五个数,保存到一个数组中,然后将这五个数字进行从小到大的排列 采用冒泡排序法,如下:

package com.test;

import java.util.Arrays;

import java.util.Scanner;

public class TestA {

public static void main(String[] args) {

//数组计量

int count=0;

int[] arr=new int[5];

//循环输入5个整数存放到数组

while(count5){

Scanner sc=new Scanner(System.in);

//try防止输入不是整数的

try {

System.out.println("请输入第"+(count+1)+"整数");

//输入的数存放到数组

arr[count]=sc.nextInt();

//计量加一,直到5个

count++;

} catch (Exception e) {

//输入的不是整数,则从新输入

System.out.println("请输入整数");

}

}

System.out.println("排序前数组:"+Arrays.toString(arr));

//冒泡升序排序

for(int x=0;xarr.length;x++){

//冒泡排序就是后面的和前面的数对比

for(int y=x+1;yarr.length;y++){

//如果是后面的大于前面的,则把前面数往后交换

if(arr[x]arr[y]){

int temp=arr[y];

arr[y]=arr[x];

arr[x]=temp;

}

}

}

System.out.println("排序后数组:"+Arrays.toString(arr));

}

}

运行结果:

请输入第1整数

2

请输入第2整数

f

请输入整数

请输入第2整数

f

请输入整数

请输入第2整数

3

请输入第3整数

-1

请输入第4整数

5

请输入第5整数

6

排序前数组:[2, 3, -1, 5, 6]

排序后数组:[-1, 2, 3, 5, 6]

java排列保存的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java生成全排列、java排列保存的信息别忘了在本站进行查找喔。