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 }
时间: 2024-08-10 21:17:55

30:根据排序标识flag给数组排序的相关文章

2015华为机试—— 输入整型数组和排序标识,对其元素按照升序或降序进行排序

接口说明 原型: void sortIntegerArray(Integer[] pIntegerArray, int iSortFlag); 输入参数: Integer[] pIntegerArray:整型数组 int  iSortFlag:排序标识:0表示按升序,1表示按降序 输出参数: 无 返回值: void 这题比较简单,也没什么思路好说,直接看代码 代码如下: public final class Demo { // 功能:输入整型数组,对其元素按照升序或降序进行排序 // 输入:pI

1038. Recover the Smallest Number (30) - 字符串排序

题目如下: Given a collection of number segments, you are supposed to recover the smallest number from them. For example, given {32, 321, 3214, 0229, 87}, we can recover many numbers such like 32-321-3214-0229-87 or 0229-32-87-321-3214 with respect to dif

1080. Graduate Admission (30) (模拟排序啊 ZJU_PAT)

题目链接:http://www.patest.cn/contests/pat-a-practise/1080 It is said that in 2013, there were about 100 graduate schools ready to proceed over 40,000 applications in Zhejiang Province. It would help a lot if you could write a program to automate the adm

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

import java.util.Arrays; import java.util.Scanner; public class IntArrSot { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String str = scan.nextLine(); String start = str.substring(0, 1); int num = Integer.parseInt(s

php基础篇-二维数组排序姐妹篇

前面介绍了php多维数组排序的一个函数array_multisort() ,想了解的人可以点击 二维数组排序 array_multisort 下面介绍下不适用array_multisort()进行多维数组的排序. 这里介绍下2个php排序函数,一个是asort,一个是arsort. asort(array,sorttype) 函数对数组进行排序并保持索引关系.主要用于对那些单元顺序很重要的结合数组进行排序. 可选的第二个参数包含了附加的排序标识. SORT_REGULAR - 默认.以它们原来的

常见的几种数组排序方法

---恢复内容开始--- 一.研究数组排序的意义: 数据结构中,排序算法各有用处,不同的排序方法有不同的时间复杂度与空间复杂度.为了能够依据不同情况,选用不同的排序方法解决不同的问题. 二.常见的数组排序方法: 以下研究,默认是对操作数组进行从小到大的排序.使用语言是Java. 1.选择排序法 选择排序法是将需要操作的数组分为已排序部分和未排序部分两部分.未排序的数组元素中,最小(或最大)的元素依次按照获得顺序放入已排序的元素中. public static boolean sortByChoi

java几种常见的排序算法总结

[java] view plain copy /*************几种常见的排序算法总结***************************/ package paixu; public class PaiXu { final int MAX=20; int num[]=new int[MAX]; { System.out.print("生成的随机数组是:"); for(int i=0;i<20;i++){ num[i]=(int)(Math.random()*100)

小白书练习题5.5.3 排序检索类、

UVA 340 Master-Mind Hints 题意:猜数字游戏,给n个数的序列给你.接下来一行是答案序列.剩下的都是猜测序列.对于每一个猜测序列,统计有多少个数字相同并且位置相同.有多少数字相同位置不同.每一个数字只能用一次. 思路:直接统计可以求出数字相同并且位置相同的哪一些数.在此过程中我加了一个标记数组.标记那些用过的数的位置为1,没用过为0:然后枚举猜测中哪些没用过的数字.去答案序列中找.当数字相等并且答案行中那个数也没用过时.计数加1: 1 #include<cstdio> 2

常用排序法之一 ——冒泡排序法和选择排序法

语言中,常用的算法有:冒泡排序.快速排序.插入排序.选择排序.希尔排序.堆排序以及归并排序等等.那么从这篇开始,我将分别总结下这几种排序法. 先交代一下,我们将要排序的数组定义为arr[N],即数组arr[]包含N个元素. ## 冒泡排序法(Bubblesort) ## 所谓排序法,就是对一组无序的序列进行有序的排序(从大到小或者从小到大),那么什么叫冒泡排序法,冒泡排序法又是怎么实现数组的有序排列呢. 冒泡排序法的具体实现方法是这样的,从数组的第一个元素`arr[0]`开始,两两比较**(`a