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