为了账号安全,请及时绑定邮箱和手机立即绑定

Java 数组和冒泡排序

Java 数组和冒泡排序

翻过高山走不出你 2021-11-03 14:20:48
更新!!我设法使程序生成 50 个随机整数(来自 10,000 个随机整数数组)。但是,我正在努力使冒泡排序方法对完整值(即 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  8040Sorted order: 0 1 2 2 3
查看完整描述

2 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

首先在这个循环的主函数中:


 for(int element = 0; element < 50; element++)

          {

             values[element] = randomNumbers.nextInt(10000);

          }

您在 10,000 数组中仅创建 50 个随机数,而数组中的其他数字将默认分配为 0。


第二:尝试 instede 这行:IntBubbleSorter.bubbleSort(values); 这行:bubbleSort(values);


查看完整回答
反对 回复 2021-11-03
?
偶然的你

TA贡献1841条经验 获得超3个赞

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


randomNumbers.nextInt(10000)

意味着下一个随机数应该在 0 到 10000 之间,并且您只生成 50 个随机数。


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


主类:


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;

                }

            }

        }

    }

}


查看完整回答
反对 回复 2021-11-03

没有找到匹配的内容?试试慕课网站内搜索吧

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号