您的位置:

java排列,java排列组合算法详解

本文目录一览:

java 数组顺序排列

首先,API里面写了: Sorts the specified array of ints into ascending numerical order.

就是这是个升序!

其次,你这个运行应该不会报错,输出的会是 数组地址,因为数组在java里面是一个对象,如果要看排序的结果,需要遍历下:

比如

for(int i:arr){

System.out.println(i);

}

java怎么让数组的数字从大到小排序?

将数字从大到小排序的方法:

例如简一点的冒泡排序,将第一个数字和后面的数字逐个比较大小,如果小于,则互换位置,大于则不动。此时,第一个数为数组中的最大数。然后再将第二个数与后面的数逐个比较,以次类推。

示例代码如下: 

public class Test { 

public static void main(String[] args) { 

int [] array = {12,3,1254,235,435,236,25,34,23}; 

int temp; 

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

for (int j = i+1; j  array.length; j++) { 

if (array[i]  array[j]) { 

temp = array[i]; 

array[i] = array[j]; 

array[j] = temp; // 两个数交换位置 

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

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

}

数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。

Java 语言中提供的数组是用来存储固定大小的同类型元素。

你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,....,number99

扩展资料

Java中利用数组进行数字排序一般有4种方法:

1、选择排序是先将数组中的第一个数作为最大或最小数,然后通过循环比较交换最大数或最小数与一轮比较中第一个数位置进行排序。

2、冒泡排序也是先将数组中的第一个数作为最大或最小数,循环比较相邻两个数的大小,满足条件就互换位置,将最大数或最小数沉底。

3、快速排序法主要是运用Arrays类中的Arrays.sort方法()实现。

4、插入排序是选择一个数组中的数据,通过不断的插入比较最后进行排序。

Java 关于排列 (sort)

程序整体错误较多,但你的思路很清晰。在以后要多注意数组边界的处理和排序的逻辑性思维的锻炼

出现的错误已更正,需要注意的地方代码中已经指出。希望对你有帮助

——————————————程序代码——————————————

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.util.*;

public class population {

static Scanner console=new Scanner(System.in);

public static void main(String[]args)

{ int[] x={1,25,7,6,8}; //x.length=5;

int i,j,f;

int []v=new int[8];

for (j=0;j5;j++)/*由于x有5个元素,j=1开始循环的话那么j6,但你

后边要给数组赋值所以只有改j的初始值了,

后边就将j+1就不会出现“x0”

*/

{System.out.println("Enter the number for x"+ (j +1));

for (i=0;i8;i++)

v[i]=console.nextInt();

x[j]=(v[0]+v[1])-(v[2]+v[3])+(v[4]+v[5])+(v[6]+v[7]);

}

System.out.println("排序前:");

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

System.out.println("x"+j+"=" + x[j]);

}

for (f =0; fx.length;f++)

{

for (j=0;j(x.length-1);j++)/*循环每一个元素所以要从j=0开始,

在这个数组里 第4此循环比较x[3]和 x[4], 第5次循环

只取的最后一个元素 这也是冒泡排序

要注意的地方,最后一次不要比较。*/

{

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

{ //将x[j],[j+1]交换位置,

int tmp=0;

tmp=x[j+1];

x[j+1]=x[j];

x[j]=tmp;

}

}

}

System.out.println("排序后:");

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

System.out.println("x"+j+"=" + x[j]);

}

}

}

________________________________程序执行结果————————————

Enter the number for x1

1 2 3 4 5 6 7 8

Enter the number for x2

2 5 8 3 6 9 7 8

Enter the number for x3

1 4 7 2 5 8 3 6

Enter the number for x4

4 5 6 7 8 92 5

4

Enter the number for x5

4 5 6 8 5 2 3 6

排序前:

x0=22

x1=26

x2=18

x3=105

x4=11

排序后:

x0=105

x1=26

x2=22

x3=18

x4=11

java数组sort()方法降序怎么排?

java数组sort()方法降序方式:

用Arrays类sort()对数组元素进行降序排列

import java.util.Arrays;

class SortDemo

{

public static void main(String[] args)

{

int[] vec={0,15,-14,45,20,70};

Arrays.sort(vec);

System.out.println("/n");

System.out.println("降序排列:");

for (int i=vec.length-1;i=0 ;i-- )

{

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

}

}

}

如何用java实现一个数组的排列

首先根据数组的类型不同排序方式也是不同的,如果是基本类型数组,那么使用冒泡或者其他排序方式都是很简单的,例如:。如果不想自己写排序算法那么使用Arrays.sort()进行排序也是不错的。

如果是自定义类型的数组,推荐使用java自带的工具类:Comparable接口,并重写CompareTo()方法。或者Compartor。

java实现排列组合输出

完成了一种实现,发给你参考下。

不过感觉应该还有更好的办法,有时间我会继续研究下.

import java.util.ArrayList;

import java.util.Arrays;

import java.util.HashSet;

import java.util.List;

import java.util.Set;

public class TestQiuhe {

    //集合a{1,2,3,5,7,10},输出不多于4个元素(不重复)的加和为22的组合。

    public static void main(String[] args) {

        int[] nums={1,2,3,5,7,10};

        int l = nums.length;

        Listint[] results=new ArrayListint[]();

        for(int i1=0;i1l;i1++){

            for(int i2=0;i2l;i2++){

                if(nums[i1]==22){

                    results.add(new int[]{nums[i1]});

                }

                if(i2!=i1){

                    if(nums[i1]+nums[i2]==22){

                        results.add(new int[]{nums[i1],nums[i2]});

                    }

                    for(int i3=0;i3l;i3++){

                        if(i3!=i1  i3!=i2){

                            if(nums[i1]+nums[i2]+nums[i3]==22){

                                results.add(new int[]{nums[i1],nums[i2],nums[i3]});

                            }

                            for(int i4=0;i4l;i4++){

                                if(i4!=i1  i4!= i2  i4!=i3){

                                    if(nums[i1]+nums[i2]+nums[i3]+nums[i4]==22){

                                        results.add(new int[]{nums[i1],nums[i2],nums[i3],nums[i4]});

                                    }

                                }

                            }

                        }

                    }

                }

            }

        }

        //去重

        SetString reSet=new HashSet();

        for(int[] r:results){

            Arrays.sort(r);

            reSet.add(Arrays.toString(r));

        }

        System.out.println("一共得到结果集:"+reSet.size());

        System.out.println(reSet);

    }

}

运行结果:

一共得到结果集:2

[[5, 7, 10], [2, 3, 7, 10]]