冒泡排序解决
import java.util.Scanner;
public class TestOne{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int height = 0;
int num = 0;
for(int i = 0;i < 2;i++ ) {
if(i == 0) {
height = scanner.nextInt();
System.out.println("height: " + height);
}
if(i == 1) {
num = scanner.nextInt();
System.out.println("num: " + num);
}
}
int[] list = new int[num];
if(num > 0 && num < 50)
for(int i = 0; i < num;i++) {
int h = scanner.nextInt();
if(h <= 0 || h >= 200)
break;
list[i] = h;
}
System.out.println("数组遍历1: ");
for(int i =0; i < list.length; i ++) {
System.out.println(list[i] + " ");
}
System.out.println("list.length: " + list.length);
if(list.length == num)
// 根据绝对值小来进行冒泡排序
for(int i = 0; i < list.length - 1; i++) {
// 其他小孩身高
int value = height - list[i];
if(value < 0) {
value = value * (-1);
}
for(int j = i+1; j < list.length; j++) {
int value1 = height - list[j];
if(value1 < 0) {
value1 = value1 * (-1);
}
System.out.println("value"+ i +": " + value + ";v" + j + ":" + value1);
if(value > value1) {
System.out.println("交换前:list["+ i +"](" + list[i] + ")" + ";list[" + j +"](" + list[j] + ")");
int tmp = list[i];
list[i] = list[j];
list[j] = tmp;
// 如果是使用介质而非使用元素本身来判断元素位置交换,记得每次交换完之后更新介质的值
value = height - list[i];
if(value < 0) {
value = value * (-1);
}
System.out.println("交换前:list["+ i +"](" + list[i] + ")" + ";list[" + j +"](" + list[j] + ")");
}
}
}
System.out.println("数组遍历2 : ");
for(int i =0; i < list.length; i ++) {
System.out.println(list[i] + " ");
}
}
}