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

    //方法1:用到的是LinkedList的知识点

    //方法2:用的是算法

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


    public class SortNumber {

    public static void main(String[] args) {
    SortNumber sortNumber = new SortNumber();
    Integer[] strs = {43,14,6,9,3,27,38,19,5};
    Integer [] ints=sortNumber.sort(strs);
    List<Integer> results = sortNumber.sortStrings(ints);
    for(Integer result : results){
    System.out.print(result + " ");
    }
    }

    private List<Integer> sortStrings(Integer[] strs) {
    List<Integer> lists = new ArrayList<Integer>();
    LinkedList<Integer> results = new LinkedList<Integer>();
    //strs [3, 5, 6, 9, 14, 19, 27, 38, 43]
    for(Integer str : strs){
    results.push(str);
    //[43,38,27, 19, 14, 9, 6, 5,3]
    }
    while(!results.isEmpty()){
    lists.add(results.pop());//这个是取首元素
    Integer res = results.pollLast();//这个是去最后一个元素
    if(res != null){
    lists.add(res);
    }
    }
    return lists;
    }

    //从小到大排序
    private Integer[] sort(Integer[] strs){
    int temp = 0;
    for(int i = 0; i < strs.length - 1; i++){
    for(int j = i + 1; j < strs.length; j++){
    if(strs[i] > strs[j]){
    temp = strs[i];
    strs[i] = strs[j];
    strs[j] = temp;
    }
    }
    }
    return strs;
    }

    }

    //方法2:

    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----这个是最终结果

     
  • 相关阅读:
    【Coursera】Third Week(2)
    【TCP/IP详解 卷一:协议】第二章:链路层
    【Coursera】Third Week(1)
    【Coursera】SecondWeek(2)
    【Coursera】SecondWeek(1)
    【Coursera】History: Dawn of Electronic Computing学后小结
    【TCP/IP详解 卷一:协议】第一章概论 学习笔记
    NS3 fifth.cc 拥塞窗口实例
    NS3 利用Gnuplot生成拥塞窗口例子fifth.cc的png图像
    C++小结:迟到的小结和重新起航的故事
  • 原文地址:https://www.cnblogs.com/zhangqf/p/6283103.html
Copyright © 2011-2022 走看看