「java排列保存」java生成全排列
本篇文章给大家谈谈java排列保存,以及java生成全排列对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java全排列 数组
- 2、java,数组问题:有一组英文歌曲,按照歌曲名称的字母顺序从“A”到"Z"顺序排列,保存在一个数组中。
- 3、用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排列保存的信息别忘了在本站进行查找喔。