zoukankan      html  css  js  c++  java
  • 每日一练:排序题:一大一小,依次类推题

    /*描述:有一组数(43,14,6,9,3,27,38,19,5等)
    排序:将最大的放在第一位,最小放在第二位,剩下的最大的放在第三位,最小的放在第四位,以此类推
    输出排序结果*/

    package everyDay;

    import java.util.Arrays;

    public class SortTest {
    /**
    * 实现思路:1.数组的排序小大
    * 2.判断数组奇偶
    * 2.1偶数:除2,小前半部分b数组,大后半部分c数组长度
    * 2.2 再分别把a的值给b和c,又两个循环
    * 2.3然后第3个循环以a的长度循环奇偶赋值给a,
    * 2.4最后循环输出a的值即可
    * @param args
    */
    public static void main(String[] args) {
    //int a[] = { 4, 5, 6, 3, 2, 5, 7, 9, 3 };
    int a[] = { 43,14,6,9,3,27,38,19,5 };
    Arrays.sort(a);////数组的排序方法
    ////
    for(int i=0;i<a.length;i++){
    System.out.print(a[i]+" ");
    //System.out.print(" ");
    }
    System.out.print(" ");
    //
    if (a.length % 2 == 0) {
    int b[] = new int[a.length / 2];
    int c[] = new int[a.length / 2];
    for (int i = 0; i < b.length; i++) {
    b[i] = a[i];
    }
    for (int i = c.length; i < a.length; i++) {
    c[i - c.length] = a[i];
    }
    for (int i = 0; i < a.length; i++) {
    if (i % 2 == 0) {//0,2,4,6
    a[i] = c[c.length - i / 2 - 1];
    } else {
    a[i] = b[i / 2];
    }
    }
    } else {
    int b[] = new int[a.length / 2];
    int c[] = new int[a.length / 2 + 1];
    for (int i = 0; i < b.length; i++) {
    b[i] = a[i];
    }
    for (int i = b.length; i < a.length; i++) {
    c[i - b.length] = a[i];
    }
    for (int i = 0; i < a.length; i++) {
    if (i % 2 == 0) {
    a[i] = c[c.length - i / 2 - 1];
    } else {
    a[i] = b[i / 2];
    }
    }
    }
    for (int i = 0; i < a.length; i++) {
    System.out.print(a[i] + " ");
    }
    }
    }

    输出结果:

    3 5 6 9 14 19 27 38 43
    43 3 38 5 27 6 19 9 14

  • 相关阅读:
    alg--动态规划(dynamic planning)
    alg--分治法
    汇编-理解call,ret
    汇编--实验7
    leetCode笔记--binary tree
    leetCode笔记--(1)
    C#获取当前路径的方法如下
    VS2013 快捷键 与 RESHARPER 冲突
    使用Visual Studio 2013进行单元测试--初级篇
    VS 插件
  • 原文地址:https://www.cnblogs.com/zhangqf/p/6184552.html
Copyright © 2011-2022 走看看