首页 > 代码库 > 30:根据排序标识flag给数组排序
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 返回值: void20 输入描述:1、输入需要输入的整型数个数21 输出描述:输出排好序的数字22 输入例子23 824 1 2 4 9 3 55 64 2525 026 输出例子: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 else61 System.out.print(arr[i] + " " );62 }63 }64 }65 class MyComparator implements Comparator<Integer> {66 67 @Override68 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 else77 return 0;78 }79 }
30:根据排序标识flag给数组排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。