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

接口说明

原型:

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

 package huawei2;

 import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner; import javax.naming.spi.DirStateFactory.Result; /*题目描述
输入整型数组和排序标识,对其元素按照升序或降序进行排序
接口说明
原型:
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*/
public class SortArrayAccordingFlag { public static void main(String[] args) {
Scanner in = new Scanner(System.in); while(in.hasNext())
{
int count = in.nextInt();
Integer arr[] = new Integer[count];
for(int i = 0;i<count;i++)
{
arr[i] = in.nextInt();
}
int flag = in.nextInt();
sortIntegerArray(arr, flag);
}
//sortIntegerArray(arr,flag);
} private static void sortIntegerArray(Integer[] arr, int flag) {
if(flag == 0)//从小到大
{
Arrays.sort(arr);
}
if(flag == 1)
{
Arrays.sort(arr, new MyComparator());
}
for(int i = 0 ; i < arr.length; i++)
{
if(i == arr.length-1)System.out.print(arr[i]);
else
System.out.print(arr[i] + " " );
}
}
}
class MyComparator implements Comparator<Integer> { @Override
public int compare(Integer o1, Integer o2) {
if(o1.intValue() < o2.intValue())
{
return 1;
}else if(o1.intValue() > o2.intValue())
{
return -1;
}
else
return 0;
}
}

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

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

    题目例如以下: Given a collection of number segments, you are supposed to recover the smallest number from ...

  2. 30.algorithm排序小结

    如果容器中是类,如果要调用sort则需要重载操作符 "<" 包含头文件 #define _CRT_SECURE_NO_WARNINGS #include <vector ...

  3. 37-Arrays.sort() 由大到小排序 和 对象数组排序

    1. 由大到小排序: 2. 对象数组排序: 1. 由大到小排序: 注意:必需是Integer 类型的数组!!! 方法一: import java.util.Arrays; import java.ut ...

  4. 排序算法代码实现-Java

    前言 为了准备面试,从2月开始将排序算法认认真真得刷了一遍,通过看书看视频,实践打代码,还有一部分的leetcode题,自己感觉也有点进步,将笔记记录总结发出来. 冒泡排序 该排序就是一种像泡泡浮到水 ...

  5. Java list的用法排序及遍历

    原文地址:http://baike.xsoftlab.net/view/208.html 1用法 ·ArrayList ·LinkedList 2排序 ·数字排序 ·中文排序 ·实体类排序 3遍历 · ...

  6. JS表格排序

    var employees = [] employees[0] = { name: "George", age: 32, retiredate: "March 12, 2 ...

  7. [JS深入学习]——数组对象排序

    (转) JavaScript实现多维数组.对象数组排序,其实用的就是原生的sort()方法,用于对数组的元素进行排序. sort() 方法用于对数组的元素进行排序.语法如下: arrayObject. ...

  8. php排序函数学习

    sort() 函数按升序对给定数组的值排序. 注释:本函数为数组中的单元赋予新的键名.原有的键名将被删除. 如果成功则返回 TRUE,否则返回 FALSE. <?php$my_array = a ...

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

    /*************几种常见的排序算法总结***************************/ package paixu; public class PaiXu { final int  ...

随机推荐

  1. vue2+nodejs+mongodb搭建移动端网站

    从零开始一步步搭建移动端网站,持续更新,github代码如下,因为放了视频文件,下载可能有点慢 https://github.com/lanleilin/myHomepage 前端采用Vue2+vue ...

  2. java网络编程(二)

    客户端程序: package net; import java.io.OutputStream; import java.net.Socket; /** * Created by hu on 2015 ...

  3. linux 实现共享内存同步

    本文主要对实现共享内存同步的四种方法进行了介绍. 共享内存是一种最为高效的进程间通信方式,进程可以直接读写内存,而不需要任何数据的拷贝.它是IPC对象的一种. 为了在多个进程间交换信息,内核专门留出了 ...

  4. Python 文本(txt) 转换成 EXCEL(xls)

    #!/bin/env python # -*- encoding: utf-8 -*- #------------------------------------------------------- ...

  5. Scrapy笔记:使用代理ip

    scrapy框架使用代理ip的基本思路是修改请求对象中的meta['proxy']的值,将代理ip赋值给这个属性.遵循这个思路,只要是生成Request对象的地方都可以设置Request的值. dow ...

  6. C# 用实例来理解IComparable和IComparer

    通过Array的Sort方法来理解的 Sort方法要 通过对象去继承IComparable接口来实现排序(当然也有其它办法),我想入门这可能就是对这句话有点不理解,在下面会有注释 using Syst ...

  7. Codeforces Round #467 (Div. 2) A. Olympiad[输入一组数,求该数列合法的子集个数]

    A. Olympiad time limit per test 1 second memory limit per test 256 megabytes input standard input ou ...

  8. 10.1综合强化刷题 Day3

    括号序列(bracket) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK有一个括号序列,但这个序列不一定合法. 一个合法的括号序列如下: ()是合法的 ...

  9. (持续集成)win7上部署Jenkins+MSBuild+Svn+SonarQube+SonarQube Scanner for MSBuild (一)

    一.Jenkins介绍 jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的”自动化”编译.打包.分发部署.jenkins可以很好的支持各种语言(比如:java ...

  10. delphi中将 4 个 Byte 合成 1 个 Integer 的五种方法

    有4个字节类型的值,用移位或逻辑运算符怎么合成一个整数?比如 $FFEEDDCC.高$FF$EE$DD$CC低 //方法 1: 共用内存procedure TForm1.Button1Click(Se ...