zoukankan      html  css  js  c++  java
  • 30:根据排序标识flag给数组排序

    题目描述:输入整型数组和排序标识,对其元素按照升序或降序进行排序

    接口说明

    原型:

    void sortIntegerArray(Integer[] pIntegerArray, int iSortFlag);

    输入参数:

        Integer[] pIntegerArray:整型数组

    int  iSortFlag:排序标识:0表示按升序,1表示按降序

    输出参数:    无

    返回值:    void

    输入描述:1、输入需要输入的整型数个数

    输出描述:输出排好序的数字

    输入例子

    8

    1 2 4 9 3 55 64 25

    0

     输出例子:

    1 2 3 4 9 25 55 64

    注意:在while循环里申请数组以及变量,函数调用处理也在循环里,否则会出现  “数组越界的错误“

    下面的代码仍然有错,牛客运行说结果不对,在大量测试用例里,说结果输出多了好多,前边有一段(正确结果)是一样的,至今不知道错误在哪。

    这个题也可以用两个数组,另外一个数组result[]存放排序后的数组,当flag==0,原数组copy到result,flag==1,倒过来复制到result

     1 package huawei2;
     2 
     3 import java.lang.reflect.Array;
     4 import java.util.Arrays;
     5 import java.util.Comparator;
     6 import java.util.Scanner;
     7 
     8 import javax.naming.spi.DirStateFactory.Result;
     9 
    10 /*题目描述
    11 输入整型数组和排序标识,对其元素按照升序或降序进行排序
    12 接口说明
    13 原型:
    14 void sortIntegerArray(Integer[] pIntegerArray, int iSortFlag);
    15 输入参数:
    16     Integer[] pIntegerArray:整型数组
    17 int  iSortFlag:排序标识:0表示按升序,1表示按降序
    18 输出参数:    无
    19 返回值:    void
    20 输入描述:1、输入需要输入的整型数个数
    21 输出描述:输出排好序的数字
    22 输入例子
    23 8
    24 1 2 4 9 3 55 64 25
    25 0
    26 输出例子:
    27 1 2 3 4 9 25 55 64*/
    28 public class SortArrayAccordingFlag {
    29 
    30     public static void main(String[] args) {
    31         Scanner in = new Scanner(System.in);
    32         
    33         
    34         while(in.hasNext())
    35         {
    36             int count = in.nextInt();
    37             Integer arr[] = new Integer[count];
    38             for(int i = 0;i<count;i++)
    39             {
    40                 arr[i] = in.nextInt();
    41             }
    42             int flag = in.nextInt();
    43             sortIntegerArray(arr, flag);
    44         }
    45         //sortIntegerArray(arr,flag);
    46     }
    47 
    48     private static void sortIntegerArray(Integer[] arr, int flag) {
    49         if(flag == 0)//从小到大
    50         {
    51             Arrays.sort(arr);
    52         }
    53         if(flag == 1)
    54         {
    55             Arrays.sort(arr, new MyComparator());
    56         }
    57         for(int i = 0 ; i < arr.length; i++)
    58         {
    59             if(i == arr.length-1)System.out.print(arr[i]);
    60             else
    61             System.out.print(arr[i] + " " );
    62         }
    63     }
    64 }
    65 class MyComparator implements Comparator<Integer> {
    66 
    67     @Override
    68     public int compare(Integer o1, Integer o2) {
    69         if(o1.intValue() < o2.intValue())
    70         {
    71             return 1;
    72         }else if(o1.intValue() > o2.intValue())
    73         {
    74             return -1;
    75         }
    76         else
    77         return 0;
    78     }
    79 }
  • 相关阅读:
    系统优化怎么做-JVM优化之开篇
    系统优化怎么做-Tomcat优化
    系统优化怎么做-Linux系统配置优化
    系统优化怎么做-SQL优化
    系统优化怎么做-数据库优化
    系统优化怎么做-新系统上线前做什么
    系统优化怎么做-开篇
    一起学习Avalonia(一)
    etcd的应用举例
    c#总结几种正则表达式使用
  • 原文地址:https://www.cnblogs.com/newcoder/p/5811813.html
Copyright © 2011-2022 走看看