「java重排」数组去重排序java

博主:adminadmin 2023-01-13 10:24:08 320

本篇文章给大家谈谈java重排,以及数组去重排序java对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java中如何将一个字符串数组按字典序重新排列?

import java.util.Arrays;

public class Test{

public static void mian(String[] args){

String sr[] = {"爪哇","汇编","计算机","键盘","鼠标"};

Arrays.sort(sr);

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

System.out.println(sr[i]);

}

}

}

楼主是这个吧?

引入:import java.util.Arrays;

方法:Arrays.sort(数组名);

可以实现对数组按字典顺序排序.....

java排序问题 一组偶数个数据,重排,使得前半部分和后半部分的和的乘积最大

public class MaoPao

{

public static void main(String args[])

{

int[] arr={2,1,3,4,6,5,7,8,9,0,10};

//N是数组的元素个数,这样无论多少个数,直接修改arr中的元素就行了,

//不需要调整循环次数

int N = arr.length;

int temp=0;

//冒泡排序:每次把最大的放到最后,N-i是因为第i次排序之后,

//数组arr的最后i个数已经是按照大小顺序的了,所以不需要再排序了

//比如第一次排序之后,最后一个数肯定是最大的,下一次只需要排前9个就行了。

for(int i=1;iN;++i)

{

for(int j=0;jN-i;++j)

{

//如果前面的数比后面的大,则不是按照顺序的,因此要交换

if(arr[j]arr[j+1])

{

temp=arr[j]; //交换2个数

arr[j]=arr[j+1];

arr[j+1]=temp;

}

}

}

for(int i=0;iN;++i) //输出排序后的结果

{

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

}

}

}

重排九宫问题(用java实现)

import java.util.Arrays;

public class NineGridTest{

public static void main(String[] args){

//三行数据依次排列9个元素构造实例,空位填0,调用go方法获取答案。

NineGrid example=new NineGrid(new int[]{1,6,5,3,0,2,7,8,4});

int[] answer=example.go();

if(answer==null){

System.out.println("没有找到步骤");

}

else{

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

System.out.print(answer[i]);

}

System.out.println();

}

}

}

class NineGrid{

private static final int MAX_STEP=50;

private static final int[] right=new int[]{1,2,3,8,0,4,7,6,5};

private int vacant,length;

private int[] grids,answer;

public NineGrid(int[] grids){

if(grids.length!=9){

throw new IllegalArgumentException(String.format("缺少数据:%1$d(%2$d)",grids.length,9));

}

int i,j;

for(i=8;i=0;i--){

for(j=0;j9;j++){

if(grids[j]==i){

break;

}

}

if(j==9){

throw new IllegalArgumentException("无效的数字序列。缺少:"+i);

}

}

this.grids=grids;

answer=new int[50];

length=0;

}

public int[] go(){

for(vacant=0;vacant9grids[vacant]!=0;vacant++);

return nextStep(0)?Arrays.copyOf(answer,length):null;

}

private boolean OK(){

return Arrays.equals(grids,right);

}

private boolean nextStep(int step){

if(step==MAX_STEP){

return false;

}

int[] siblings=getSiblings(vacant);

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

if(step0grids[siblings[i]]==answer[step-1]){

continue;

}

grids[vacant]=grids[siblings[i]];

answer[step]=grids[vacant];

grids[siblings[i]]=0;

vacant^=siblings[i];

siblings[i]^=vacant;

vacant^=siblings[i];

if(OK()){

length=step+1;

return true;

}

else{

boolean result=nextStep(step+1);

if(result){

return true;

}

else{

grids[vacant]=grids[siblings[i]];

vacant=siblings[i];

grids[vacant]=0;

}

}

}

return false;

}

private int[] getSiblings(int position){

switch(position){

case 0:return new int[]{1,3};

case 1:return new int[]{0,2,4};

case 2:return new int[]{1,5};

case 3:return new int[]{0,4,6};

case 4:return new int[]{1,3,5,7};

case 5:return new int[]{2,4,8};

case 6:return new int[]{3,7};

case 7:return new int[]{4,6,8};

case 8:return new int[]{5,7};

default:return null;

}

}

}

//递归算法。超慢。。。。

关于java重排和数组去重排序java的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。