繁体   English   中英

Java数组和冒泡排序

[英]Java Arrays and Bubble Sort

UPDATE!

我设法使程序生成50个随机整数(从10,000个随机int数组)。 但是,我正在努力使冒泡排序方法对全部值(即4579和3457)而不是仅对单个数字(3、4、4、5、5、7、7、9)进行排序

这是我正在使用的代码:

public class RandomNumbers
{
   public static void main(String[] args)
   {
      int[] randomIntArray = new int[10000];

      for(int i = 0; i<randomIntArray.length; i++)
         randomIntArray[i] = (int)(Math.random() * 10000);

      for(int i = 0; i < 50; i++)
         System.out.println(randomIntArray[i]);

      System.out.println("Original order: ");
      for(int i = 0; i < 50; i++)
         System.out.print(randomIntArray[i] + "  ");

      IntBubbleSorter.bubbleSort(randomIntArray);

      System.out.println("\nSorted order: ");
      for(int i = 0; i < 50; i++)
         System.out.print(randomIntArray[i] + " ");

      System.out.println();
   }

}

public class IntBubbleSorter {
   public static void bubbleSort (int[] randomIntArray) {
      int lastPost;
      int index;
      int temp;

      for(lastPost = randomIntArray.length - 1; lastPost >= 0; lastPost--)
      {
         for(index = 0; index <= lastPost - 1; index++)
         {
            if(randomIntArray[index] > randomIntArray[index + 1])
            {
               temp = randomIntArray[index];
               randomIntArray[index] = randomIntArray[index + 1];
               randomIntArray[index + 1] = temp;
            }
         }
      }
   }
}

我当前的输出看起来像这样(为了便于阅读,缩短为5个整数):

Original order: 3898  6015  462  1960  8040
Sorted order: 0 1 2 2 3

首先在此循环的main函数中:

 for(int element = 0; element < 50; element++)
          {
             values[element] = randomNumbers.nextInt(10000);
          }

您只能在10,000个数组中创建50个随机数,而arry中的其他数字将通过defualt分配为0。

第二:尝试执行以下命令: IntBubbleSorter.bubbleSort(values); 这行: bubbleSort(values);

如果您的main函数和bubbleSort函数位于不同的类中,请确保它们位于同一包(文件夹)中。

randomNumbers.nextInt(10000)

表示下一个随机数应在0到10000之间,并且您仅生成50个随机数。

我创建了两个类,一个用于主函数,另一个用于冒泡排序。 您应该将它们更改为对您有好处的任何东西,但要确保它们位于同一文件夹(同一包)中

MainClass:

import java.util.Random;

public class MainClass {
    public static void main(String[] args)
    {
        // Initialize Array
        int [] values = new int[10000];
        Random randomNumbers = new Random();

        for(int index = 0; index < values.length; index++)
        {
            values[index] = randomNumbers.nextInt(10000);
        }

        System.out.println("Original order: ");
        for(int index = 0; index < 50; index++)
        {
            System.out.print(values[index] + "  ");
        }

        IntBubbleSorter.bubbleSort(values);

        System.out.println("\nSorted order: ");

        for(int index = 0; index < 50; index++)
        {
            System.out.print(values[index] + "  ");
        }

        System.out.println();
    }
}

IntBubbleSorter类:

public class IntBubbleSorter {
    public static void bubbleSort (int[] array) {
        int lastPost;
        int index;
        int temp;

        for(lastPost = array.length - 1; lastPost >= 0; lastPost--)
        {
            for(index = 0; index <= lastPost - 1; index++)
            {
                if(array[index] > array[index + 1])
                {
                temp = array[index];
                array[index] = array[index + 1];
                array[index + 1] = temp;
                }
            }
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM