您的位置:首页 > 职场人生

一道面试题,对一个数组进行排序,第一个最大,第二个最小,第三个次大,一次类推

2012-03-27 01:31 495 查看
package test;

import java.util.Arrays;

public class TestSort {

static int[] a = { 12, 24, 32, 28, 25, 60, 48, 9, 15 };

public static void main(String[] args) {

for (int i = 0; i < a.length; i++) {

System.out.print(a[i] + ","); //打印最开始的数组

}

System.out.println(); //换行

Arrays.sort(a); // 对指定 int 型数组的指定范围按数字升序进行排序

for (int i = 0; i < a.length; i++) {

System.out.print(a[i] + ","); // 打印升序排列的数组

}

System.out.println();

for (int i = a.length - 1; i >= 0; i--) {

System.out.print(a[i] + ","); // 打印降序排列的数组

}

System.out.println();

tsort(a); //按照题目的要求进行排序

for (int i = 0; i < a.length; i++) {

System.out.print(a[i] + ","); //排序后打印出来

}

}

public static void tsort(int[] a) { // 对排序好的数组进行两边弹出

boolean flag = true;

for (int i = 0; i < a.length - 1; i++) {

if (flag) {

for (int j = a.length - 1; j > i; j--) { // flag刚开始为true,执行一次降序

if (a[j] > a[j - 1]) {

int team = a[j];

a[j] = a[j - 1];

a[j - 1] = team;

}

}

} else {

for (int j = a.length - 1; j > i; j--) { //然后flag变为false,执行一次升序

if (a[j] <= a[j - 1]) {

int team = a[j];

a[j] = a[j - 1];

a[j - 1] = team;

}

}

}

flag = !flag;

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐