【问题标题】:How to work with arrays in Java?如何在 Java 中处理数组?
【发布时间】:2016-07-22 00:06:33
【问题描述】:

我正在做这个作业,通过使用冒泡排序算法,创建一个程序,要求用户输入多个整数。
然后,程序将要求用户输入用户请求的整数,并将数组的值填充到其中。
之后,程序用户输出如下:

一个。显示文件中的号码列表(未排序) 湾。显示排序列表 C。显示最大数 d。显示最小的数字 e.显示中值 F。显示平均值

到目前为止,我有这个:

import java.util.Scanner; 

public class Bubbles {

    public static void main(String[] args) 
    {
        //Declare Variables
        String strUser;
        int intSize;
        int[] intNum; 

        //Input
        Scanner scn=new Scanner(System.in); 

        //Process/Output
        System.out.println("Please enter the number of values you would like to enter:"); 
        strUser=scn.nextLine();

        intSize=Integer.parseInt(strUser);

        intNum=new int [intSize]; 

        for(int i=0; i < intNum.length; i++)
        {
            System.out.println("Please enter for index value of "+i+":");
            intNum[i]=scn.nextInt(); 

        }

    }

}

输出这个(例如):

Please enter the number of values you would like to enter: 3
Please enter for index value of 0:
47
Please enter for index value of 1:
89
Please enter for index value of 2:
42
BUILD SUCCESSFUL (total time: 13 seconds)

现在我如何将所有这些输入的数字放入一个数组中,以便我可以将它们放在一个列表中,然后使用冒泡排序对它们进行排序,等等..

像这样:

Unsorted order:
47,89,42
Sorted order:
42, 47, 89

我很迷茫,我知道。

【问题讨论】:

  • 如果你对你的作业有任何疑问,你应该去找你的助教或教授。
  • 欢迎来到 SO!由于您可能是新用户,我想说您确实在问一个有效的问题(至少对我而言),您提供了描述、预期的行为和到目前为止的工作(代码)。不要对投票的数量感到沮丧,人们有时只是对一个类似作业的问题投反对票,而不用想太多。不过给你一个小建议:检查你自己的问题,尝试清理你的代码格式,糟糕的代码格式更有可能导致你投很多票:)
  • 我投票决定将此问题作为题外话结束,因为questions asking for homework help must include a summary of the work done so far to solve the problem, and a description of the difficulty solving it。 “到目前为止完成的工作”是指您尝试实际编写 bobblesort 代码。
  • 另外,你的话题让别人很困惑,你在发问题之前应该下定决心:你问Java中如何使用数组(ArrayList)?还是您在询问冒泡排序本身的细节/算法?如果您想同时问两个问题,请分开提问,不要混淆:)
  • 我很抱歉造成负面反应——这不是我的本意。但是,我理解有些人可能会认为这是“懒惰”。但我只是在努力学习。看到我在计算机编程/科学等方面的经验几乎为零,但是我想主动学习,特别是看看计算机如何成为当今社会不可或缺的一部分。不幸的是,我才上高中,我 7 月份要上的课程是基础在线课程。

标签: java arrays algorithm sorting


【解决方案1】:

首先,回复how do I get all these inputed numbers into an array so I can be them in a list:实际上,您已经在名为 intNum 的数组中输入了数字。 for 循环将输入的整数放入该数组中。

其次,此代码是一些模板,用于说明如何在代码中添加冒泡排序功能(但不是如何进行冒泡排序)

public static void main(String[] args) 
{
    //Declare Variables
    String strUser;
    int intSize;
    int[] intNum; 

    //Input
    Scanner scn=new Scanner(System.in); 

    //Process/Output
    System.out.println("Please enter the number of values you would like to enter:"); 
    strUser=scn.nextLine();

    intSize=Integer.parseInt(strUser);

    intNum=new int [intSize]; 

    for(int i=0; i < intNum.length; i++)
    {
        System.out.println("Please enter for index value of "+i+":");
        intNum[i]=scn.nextInt(); 

    }

    System.out.println("Unsorted order:");
    System.out.println(Arrays.toString(intNum));


    int[] sortedArray = new int [intSize];
    sortedArray = bubbleSort(intNum);
    System.out.println("Sorted order:");
    System.out.println(Arrays.toString(sortedArray));

}

这假设您有一个对整数数组进行排序的 bubbleSort 方法:

public static int[] bubbleSort(int[] intArray) {
    // Implement bubble sort

    // Return the sorted array
}

如果您需要一些关于冒泡排序的资料,这里有一个堆栈溢出问题Sorting an Array of int using BubbleSort 和一个维基页面https://en.wikipedia.org/wiki/Bubble_sort

【讨论】:

  • 非常感谢!
  • 不客气。乐意效劳。看到你上面的评论,我想说恭喜你主动学习编程。我能理解在线课程的难度。
  • 我很难找到。我只是一个高二学生,但我很重视我的教育——也许有点过分了。因此,我没有像我可能应该选择的那样放松,而是报名参加了两门在线课程(我在八月份学习哲学),这两个课程都应该在走读学校占据一整个学期,但在线上被浓缩为 3 周的暑假培训班。但我相信这最终是值得的,所以尽管压力很大,但我还是保持了积极的心态。
  • 祝你好运!不久前我在同一条船上。一旦你开始编程,你就会非常有收获。
【解决方案2】:

你真的应该向你的教授或老师寻求代码方面的帮助。但我会给你一些正确的方向。

首先,您不必使用字符串解析器来获取长度,只需使用扫描仪类中的 .nextInt() 函数即可。

其次,如果您不确定它是什么,请阅读冒泡排序:https://en.wikipedia.org/wiki/Bubble_sort。基本上,最大值“冒泡”到列表的顶部。下面是一些非常基本的冒泡排序伪代码:

for i = 0 to i < n
  for j = 1 to j <n - i
    if array[j] < array[j-1], swap

这将交换值,直到它们按升序排列。从这里开始,打印它们,找到最小值、最大值、平均值和中位数应该是小菜一碟。如果您仍然遇到问题,只需打印数组并查看它。您应该能够弄清楚如何获得这一切。

【讨论】:

  • 感谢您抽出宝贵时间提供帮助。是的,我确实问过我的老师,但说老师让我再看一遍课程网站上发布的内容课程(我的课程是在线课程),好像我还没有做过 3 次一样!这是我第一次接触与这个主题(计算机编程)类似的任何东西,当你只是一个初学者并且你的老师神秘地回答every.single.damn.time - 你可以看到一个人很容易感到沮丧!无论如何,对不起我的抱怨-这是漫长的一天。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-28
  • 2012-01-05
  • 2021-10-15
  • 2017-09-20
  • 1970-01-01
  • 2022-08-23
  • 2021-02-07
相关资源
最近更新 更多