import java.util.Scanner;
public class SortPrint{
public static void main(String [] args) {
int [] number = new int[6];
Scanner sr = new Scanner(System.in);
System.out.println("Please enter the first number");
number[0] = sr.nextInt();
System.out.println("Please enter the second number");
number[1] = sr.nextInt();
System.out.println("Please enter the third number");
number[2] = sr.nextInt();
System.out.println("Please enter the forth number");
number[3] = sr.nextInt();
System.out.println("Please enter the fifth number");
number[4] = sr.nextInt();
System.out.println("Please enter the sixth number");
number[5] = sr.nextInt();
int bigger ;
// int swap = 0;
// for (int i = 1; i < number.length-1; i++) {
// if (number[length-1] < number[i]) {
// number[length-1] = number[i];
// }
// }
for (int j = number.length-1; j > 0; j--) {
for (int i = 0; i < j; i++ ) {
if (number[j] < number[i]) {
System.out.println("交换前序列如下:" +number[0]+" " +
number[1] + " " +number[2]+ " " +number[3]);
bigger = number[j];
number[j] = number[i];
number[i] = bigger;
System.out.println("交换后序列如下:" +number[0]+" " +
number[1] + " " +number[2]+ " " +number[3]) ;
}
}
System.out.println();
}
System.out.print("按照从小到大排序后的顺序为 :");
for (int i = 0; i < number.length; i++ ) {
System.out.print(number[i]+ " ");
}
System.out.println();
}
}
day04作业里面有
排序三个整数的题,第一反应是那种冒泡找最大值的方法
然而实际需要所有都排序,所以,得变成,依次找最大值,先从最后一个元素length-1开始,与前面的比较,如果前面的元素有比它大的,那就把它值赋给最后的,但是其他的元素的值还要用来排序,所以只能进行交换,将大的swap给length-1,然后用两个嵌套for循环做,到这里看起来是没什么问题了,但是实际运行2,6,4,5输出的结果为2,5,4,6,推算了好几遍,发现是在外层最后一次循环的时候,会将已经找到的更大值再交换给较小的值,所以,内层循环的限制条件应该为 i < j 而不是 i < length-1