一道面试题,对一个数组进行排序,第一个最大,第二个最小,第三个次大,一次类推
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;
}
}
}
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;
}
}
}
相关文章推荐
- 一道面试题:对一个数组进行排序,要求第一个最大、第二
- 两个数组 [n] [m] n>m 第一个数组的数字无序排列 第二个数组为空 取出第一个数组的最小值 放到第二个数组中第一个位置, 依次类推. 不能改变A数组,不能对之进行排序,也不可以倒到别的数组中。
- 两个数组[n] [m] n>m 第一个数组的数字无序排列 第二个数组为空 取出第一个数组的最小值 放到第二个数组中第一个位置, 依次类推. 不能改变A数组,不能对之进行排序,也不可以倒到别的数组中。
- 已知一数组,按第一个数最大第二个数最小,依次下去进行的规则排序
- 一个锻炼思维能力的简单的排序例子,要求第一个数最大,第二个数最小,第三个数第二大,第四个数第二小,以此类推
- 用冒泡的思想做一个面试题 ,第一个最大,第二个最小,第三个第二大,第四个第二小,以此类推
- 算法:一个排序(第一个最大,第二个最小,第三个其次大,第四其次小...)
- 面试题:在O(1)空间复杂度范围内对一个数组中前后连段有序数组进行归并排序
- 输入一个一维数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
- 输入一个一维数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
- 输入一个一维数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
- 输入一个一维数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
- 百度面试题:求一个已排序的数组中绝对值最小的元素
- java编程:将数组的第一个为最大第二个为最小以此类推
- 练习5: 输入一个一维数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
- 在控制台中输入一个数组,并对这个数组进行重新排序,将第一个数和最后一个交换,将第二个和倒数第二个交换
- 百度面试题:求一个已排序的数组中绝对值最小的元素
- 面试题8:输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。
- 输入一个一维数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组
- Java开发练习1,输入一个一维数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。