簡體   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