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