public class BubbleSort {
public static void main(String []args) {
int[] values = {45, 67, 12, 34, 25, 39};
int pass, comparison, temp;
String results = "";
for (pass = 1; pass <= values.length - 1; pass++) {
for (comparison = 1; comparison <= values.length - pass; comparison++) {
if (values[comparison - 1] > values[comparison]) {
temp = values[comparison - 1];
values[comparison - 1] = values[comparison];
values[comparison] = temp;
}
}
}
for (int i = 0; i < values.length; i++){
results += values[i] + "\n";
}
System.out.print(results);
}
}
那是我的代码。打印出来: 12 25 34 39 45 67
如何将其反转以打印出来:
67 45 39 34 25 12
另外,我如何正常打印出阵列,如:
45 67 12 34 25 39
我被困在如何将它们打印出来。
答案 0 :(得分:0)
你必须自己恢复它。没有开箱即用的方法为你做这件事。
for(int i = 0; i < values.length / 2; i++)
{
int temp = values[i];
values[i] = values[values.length - i - 1];
values[values.length - i - 1] = temp;
}
如果要打印数组的原始值,则必须在修改之前将其复制。
答案 1 :(得分:0)
反向:
for (int i = values.length; i >= 0; i--) results += values[i] + "\n";
对于原始文件,您需要在处理之前先复制原始数组。
答案 2 :(得分:0)
您可以通过多种方式进行操作,但无需反转阵列就可以反转打印...
results = "";
for (int i=0; i<values.length; i++) results = results+" "+values[i];
System.out.println("Non reversed :" + results);
results = "";
for (int i=0; i<values.length; i++) results = values[i]+" "+results;
System.out.println("Reversed :" + results);
现在,如果你真的想要反转你的数组,你只需要同时交换两个值,第一个和最后一个,第二个和前一个等,直到中间:
for (int i=0 i<values.length/2; i++) {
int tmp = values[i];
values[i] = values[values.length-1-i];
values[values.length-1-i] = tmp;
}
答案 3 :(得分:0)
这样做:
public class BubbleSort
{
public static void main(String []args)
{
String results = "";
int[] values = {45, 67, 12, 34, 25, 39};
for (int i = 0; i < values.length; i++) results += values[i] + "\n";
System.out.print(results);
int pass, comparison, temp;
results = "";
for (pass = 1; pass <= values.length - 1; pass++)
{
for (comparison = 1; comparison <= values.length - pass; comparison++)
{
if (values[comparison - 1] > values[comparison])
{
temp = values[comparison - 1];
values[comparison - 1] = values[comparison];
values[comparison] = temp;
}
}
}
for (int i = 0; i < values.length; i++) results += values[i] + "\n";
System.out.print(results);
results = "";
for (int i = values.length; i >= 0; i--) results += values[i] + "\n";
System.out.print(results);
}
}
答案 4 :(得分:0)
Collections界面中有一个方法可以反转List:Collections.reverse()
List<Integer> list = new ArrayList<Integer>(values); //Arrays.asList(45, 67, 12, 34, 25, 39);
Collections.reverse(list);
System.out.println(list);
对于打印部件,请记住您有一个数组arrays are tricky to print。相反,该列表可以通过println
打印,没有任何问题。