Java程序排序随机数组

Java程序排序随机数组,java,arrays,sorting,Java,Arrays,Sorting,所以这个程序的目的是对随机整数数组从大到小进行选择性排序。为此,我需要不断地将第一个元素与最大的元素交换。我认为我的方法是正确的,但我对Java相当陌生,不确定要正确执行我的方法,主要调用什么。提前谢谢你 package sortarray; public class SortArray { public static int randomInt(int low, int high) { double e; double x=Math.random(); e=low+x*(high-

所以这个程序的目的是对随机整数数组从大到小进行选择性排序。为此,我需要不断地将第一个元素与最大的元素交换。我认为我的方法是正确的,但我对Java相当陌生,不确定要正确执行我的方法,主要调用什么。提前谢谢你

 package sortarray;

 public class SortArray {

 public static int randomInt(int low, int high) { 
double e;
double x=Math.random();
e=low+x*(high-low);
return (int)e;
}
public static int[] randomIntArray(int n) { 
int[] a = new int[n];
for(int i = 0; i < a.length; i++) {
    a[i] = randomInt(-5, 15);
}
return a;
}

public static int indexOfMaxInRange(int[] a, int low, int high) {
int index = low;
for (int i = low + 1; i < a.length; i++) {
    if (a[i] > a[index]) {
        index = i;
    }
}
return index;
}

public static void swapElement(int[] a, int index1, int index2) {
    int temp = a[index1];
    a[index1] = a[index2];
    a[index2] = temp; 
}

public static void sort(int[] a) {
    int length = a.length;
    //use length-1 because do not need to swap last element with itself
    for (int i = 0; i < length-1; i++) {
        int indexOfMax = indexOfMaxInRange(a, i, length-1);
        swapElement(a, i, indexOfMax); 
    }
}

public static void printArray(int[] a) {
for(int i = 0; i < a.length; i++) {
    System.out.print(" " + a[i]);
}
}


public static void main(String[] args) {
 int[] array = randomIntArray(30);
    printArray();     
}

}
package-sortarray;
公营索塔雷酒店{
公共静态int randomInt(int低,int高){
双e;
double x=Math.random();
e=低+x*(高-低);
返回(int)e;
}
公共静态int[]随机数组(int n){
int[]a=新的int[n];
for(int i=0;ia[index]){
指数=i;
}
}
收益指数;
}
公共静态无效Swaplement(int[]a,int index1,int index2){
int temp=a[index1];
a[index1]=a[index2];
a[index2]=温度;
}
公共静态无效排序(int[]a){
int length=a.length;
//使用length-1,因为不需要将最后一个元素与其自身交换
对于(int i=0;i
要对数组排序,只需调用以下命令:

sort(array);
然后,您可以再次打印阵列,以验证它是否按以下方式排序:

printArray(array);

您还可以在
printary()
方法中调用方法
sort()
,因此当您调用
printary()
时,它将打印排序的:

...
public static void printArray(int[] a) {
    sort(a);
    for (int i = 0; i < a.length; i++) {
        System.out.print(" " + a[i]);
    }
}


public static void main(String[] args) {
    int[] array = randomIntArray(30);
    printArray(array);
}
...
。。。
公共静态void打印数组(int[]a){
排序(a);
for(int i=0;i
您使用的方法中必须有参数,
您应该将数组放入()

您可以使用数组的内置函数。只需调用内置方法并传递数组

数组。排序(在此处传递数组)

如果您不想使用内置方法,请参考此链接


这是我在CodeReview上发布的代码。这种排序是一个字符串数组,但您可以将其改为整数。

给定字符串

[H,B,D,G,F,E,A,C]

输出

[A、B、C、D、E、F、G、H]

公共类sortArray{
公共静态无效排序(字符串[]str)
{
int lastPos=str.length-1;
int-minPos=0;
字符串s=“”;
对于(int i=0;iarray.sort(array);
public class sortArray {
    public static void sort (String[] str)
    {
        int lastPos = str.length - 1;
        int minPos = 0;
        String s = "";
        for (int i = 0; i < lastPos; i++)
        {
            minPos = i;
            for (int j = i + 1; j <= lastPos; j++)
                if (str[j].compareTo (str[minPos]) < 0)
                    minPos = j;
            if (minPos != i)
            {
                s = str[i];
                str[i] = str[minPos];
                str[minPos] = s;
            }
        }
    }

    public static void main(String[] args){
        String[] str = {"H", "B", "D", "G","F", "E", "A", "C"};
        sort(str);
        System.out.println(Arrays.toString(str));
    }
}