Java 冒泡排序(循环2对1)+整数数组到字符串数组?

Java 冒泡排序(循环2对1)+整数数组到字符串数组?,java,arrays,string,sorting,Java,Arrays,String,Sorting,我有一个java类的家庭作业,希望得到一些帮助。我在作业中实施了气泡排序。它工作得非常好,但是我编写了一个版本,其中一个用于循环,但是,一个用于循环的版本不工作。有人知道为什么吗?这只是踢和咯咯笑,不是任务所必需的 我的第二个问题是如何将一个包含强制转换int的int数组从随机函数转换为字符串数组。我知道解决方案涉及数组库,但我不记得在课堂上学习过,我宁愿将其作为最后手段。有什么想法吗 如果你们感兴趣,下面是代码: import static java.lang.Math.random; pu

我有一个java类的家庭作业,希望得到一些帮助。我在作业中实施了气泡排序。它工作得非常好,但是我编写了一个版本,其中一个用于循环,但是,一个用于循环的版本不工作。有人知道为什么吗?这只是踢和咯咯笑,不是任务所必需的

我的第二个问题是如何将一个包含强制转换int的int数组从随机函数转换为字符串数组。我知道解决方案涉及数组库,但我不记得在课堂上学习过,我宁愿将其作为最后手段。有什么想法吗

如果你们感兴趣,下面是代码:

import static java.lang.Math.random;

public class Main
{
    public static void main(String[] args)
    {
        int intarray[] = new int[50];
        String stringarray[] = new String[50];

        for (int i = 0; i < intarray.length; i++)
        {
            intarray[i] = (int)(1000 * random());
        }

        for (int i = 0; i < intarray.length; i++)
        {
             System.out.print(intarray[i] + " ");
        }

        BubbleSort2(intarray);
        System.out.println();


        for (int i = 0; i < intarray.length; i++)
        {
            System.out.print(intarray[i] + " ");
        }

    }

    public static void BubbleSort(int array[])
    {
        for (int i = 0; i < array.length; i++)
        {
            for (int j = 0; j < array.length - 1; j++)
            {
                if (array[j] > array[i])
                {
                    int temp = array[i];
                    array[i] = array[j];
                    array[j] = temp;
                }
            }
        }
    }

    public static void BubbleSort2(int array[])
    {
        for (int i = 1; i < array.length; i++)
        {
            if (array[(i - 1)] > array[i])
            {
                int temp = array[(i - 1)];
                array[(i - 1)] = array[i];
                array[i] = temp;
            }
        }
    }
}

从开始到结束只遍历数组一次,因此只有最大元素才能正确排序。为了对其他元素进行排序,冒泡排序中需要外循环

将int转换为String的最简单方法是将其与空“String”连接起来,如下所示:

String str = i + ""

冒泡排序的最坏情况是^2

每次在列表中循环时,都会将最大元素移动到其在数组末尾的正确位置。在最坏的情况下,必须对列表中的每个元素执行此操作,这就是为什么要使用外部循环。这样可以确保将每个元素移动到其正确的位置

在BubbleSort2中,您基本上只是将最大元素移动到正确的位置,因为您将它逐位置移动到末尾

关于第二个问题,一个非常简单的方法是首先创建一个大小相同的字符串[]:

String[] stringArray = new String[intarray.length];
然后,我们可以用int数组的内容填充这个数组。我们可以通过循环使用int[]来实现这一点


这只是循环使用int[]中的每个整数,然后将它们转换为字符串,并将它们存储在字符串[]中。

非常感谢您的帮助!!我不明白为什么气泡排序不能完全工作!至于字符串数组,也非常感谢!我假设字符串数组的每个元素正好是int数组中的一个整数?示例:int[0]中的500将是字符串[0]中的500是的,这是正确的。它只是把数字变成了一个字符串,所以500也变成了500,很高兴我能帮上忙!别忘了接受答案!也谢谢你的帮助!
for(int i = 0; i < intArray.length; i++) {
    stringArray[i] = intArray[i] + "";
}