[英]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.