Java 随机数排序数组

Java 随机数排序数组,java,Java,对于我的java类,我有以下问题: 编写一个程序,生成范围为0到25的100个随机整数,并将它们存储在数组中。然后,程序应该调用一个类方法,将奇数排序到一个数组中并返回该数组。然后,程序应该调用另一个方法,将偶数排序到单独的数组中并返回该数组。然后应显示两个阵列 这是我的代码: public class Assignment8 { public static void main(String [] args) { int [] randomNum

对于我的java类,我有以下问题: 编写一个程序,生成范围为0到25的100个随机整数,并将它们存储在数组中。然后,程序应该调用一个类方法,将奇数排序到一个数组中并返回该数组。然后,程序应该调用另一个方法,将偶数排序到单独的数组中并返回该数组。然后应显示两个阵列

这是我的代码:

    public class Assignment8
     {
        public static void main(String [] args)
    {
    int [] randomNums = new int [100];
    for (int i = 0; i < randomNums.length; i++) { 
        randomNums[i] = (int) (Math.random() * 26); 
        int[] oddNums = sortOdd(randomNums);
        System.out.println("The odd numbers are "); 
        for (int n = 0; n<=oddNums.length; n++) { 
        System.out.print(n); 
        } 
        int[] evenNums = sortEven(randomNums);
        System.out.println("The even numbers are ");
        for (int o = 0; o<=evenNums.length; o++) { 
        System.out.print(o); 
        } 
    }
    }

     public static int[] sortOdd(int[] randomNums)
      {
    int numOdds = 0;
    for (int x : randomNums){
        if(x % 2 == 1){
        ++numOdds;
        }
    }
    int[] oddNums = new int[numOdds]; 
    int z = 0;
    for (int n : randomNums){
        if(n % 2 == 1){
            oddNums[z] = n;
            z++;
        }
    }
    return oddNums;


      } 
      public static int[] sortEven(int[] randomNums)
      {
    int numEvens = 0;
    for (int x : randomNums){
        if(x % 2 == 0){
        ++numEvens;
        }
    }
    int[] evenNums = new int[numEvens];
    int z = 0;
    for (int n : randomNums){
        if(n % 2 == 0){
            evenNums[z] = n;
            z++;
        }
    }
    return evenNums;

    }



    }
公共类分配8
{
公共静态void main(字符串[]args)
{
int[]randomNums=新int[100];
对于(int i=0;iimport java.util.ArrayList;
导入java.util.List;
公共课堂作业8
{
公共静态void main(字符串[]args)
{
int[]randomNums=新int[100];
对于(int i=0;i
您的代码看起来不错,但是您缺少一种合适的排序方法,升序或降序无关紧要,但是在这种情况下,您选择对数组进行排序的算法是未知的。让我向您介绍排序数组的最差的方法,气泡排序,还有许多类似的方法trong>插入排序、合并排序、快速排序、BucketSort等,内置java方法可以超高速处理排序,但为了简单起见,将冒泡排序作为排序方法,这是它在代码中的外观

public static void sortArray( int[] data )
{
    for( int x = 0; x < data.length; x++ )
    {
        for( int y = 0; y < data.length - 1; y++ )
        {
            if( data[y] < data[y + 1] )
            {
                int hold = data[y];
                data[y] = data[y + 1];
                data[y + 1] = hold;
            }
        }
    }
}
如果您在中仍然面临困难,您可以很好地想象sortOdd的代码应该是什么样子的,那么这就是sortOdd(int[])定义

public static int[] sortOdd( int[] data )
{
    int len = 0;
    int[] copyData;
    for( int x = 0; x < data.length; x++ )
    {
        if( data[x] % 2 != 0 )
        {
            len++;
        }
    }
    copyData = new int[len];
    for( int x = 0 , y = 0; x < data.length; x++ )
    {
        if( data[x] % 2 != 0 )
        {
            copyData[y++] = data[x];
        }
    }
    sortArray( copyData );
    return copyData;
}
公共静态int[]sortOdd(int[]data)
{
int len=0;
int[]复制数据;
对于(int x=0;x

如果有进一步的问题,可以继续提问,但所有这些都应该对您很好

您正在为
循环迭代器打印
,而不是排序数组中的值…我想您指的是
System.out.print(oddNums[n])我告诉过你了。祝你好运!你能解释一下你改变了什么,而不是仅仅发布一段代码吗?我没有添加排序。但我已经改变了排序以打印奇数和偶数。可能是使用差异来查看更改了什么。对不起,我的意思是在你的帖子中,以便其他人可以轻松看到为实现你的答案所做的工作。我第一次尝试在slack overflow中.我会继续学习的.这是我的错误.谢谢你帮了我大忙
public static int[] generateRandomArrayWithLimitAndSize( int limit , int size )
{
    final java.util.Random rand = new java.util.Random();
    final int[] data = new int[size];
    for( int x = 0; x < data.length; x++ )
    {
        data[x] = rand.nextInt(limit);
    }
    return data;
}
public static int[] sortEven( int[] data )
{
    int len = 0;
    int[] copyData;
    for( int x = 0; x < data.length; x++ )
    {
        if( data[x] % 2 == 0 )
        {
            len++;
        }
    }
    copyData = new int[len];
    for( int x = 0 , y = 0; x < data.length; x++ )
    {
        if( data[x] % 2 == 0 )
        {
            copyData[y++] = data[x];
        }
    }
    sortArray( copyData );
    return copyData;
}
public static void main(String[] args)
{
    int[] myArray = generateRandomArrayWithLimitAndSize( 25 , 100 ); // limit,size
    System.out.println( "Actual Array: " + java.util.Arrays.toString( myArray ) );
    System.out.println( "\r\nSorting Evens: \r\n" + java.util.Arrays.toString( sortEven( myArray ) ) );

    System.out.println( "\r\nSorting Odds: \r\n" + java.util.Arrays.toString( sortOdd( myArray ) ) );

}
public static int[] sortOdd( int[] data )
{
    int len = 0;
    int[] copyData;
    for( int x = 0; x < data.length; x++ )
    {
        if( data[x] % 2 != 0 )
        {
            len++;
        }
    }
    copyData = new int[len];
    for( int x = 0 , y = 0; x < data.length; x++ )
    {
        if( data[x] % 2 != 0 )
        {
            copyData[y++] = data[x];
        }
    }
    sortArray( copyData );
    return copyData;
}