java-去重和排序
2020-08-21 22:54
796 查看
(一)题目描述
【问题描述】明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。Input Param n 输入随机数的个数 inputArray n 个随机整数组成的数组 Return Value OutputArray 输出处理后的随机整数
【输入形式】输入多行,先输入随机整数的个数n,再输入相应个数的整数
【输出形式】输出一行,处理后的结果
【样例输入】 11
10 20 40 32 67 40 20 89 300 400 15
【样例输出】10 15 20 32 40 67 89 300 400
(二)题目分析
题目有一个重点是给的数字在1-1000;所以我们用两个for 循环遍历数组,把后面那个与前面相同的值改为0;在编写一个排序函数,进行从小到大的排序,之后在按照顺序把不是0的数输出。(这里用到插入排序函数)
(三)java代码描述
package Test; import java.util.Scanner; class Test3 { static void swap(int a[],int x,int y) { int temp=0; temp=a[x]; a[x]=a[y]; a[y]=temp; } static void insort(int a[],int n) { for(int i=0;i<n;i++) { for(int j=i;j>0&&a[j-1]>a[j];j--) { swap(a,j-1,j); } } } public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); int n=in.nextInt(); int a[]=new int[n]; for(int i=0;i<n;i++) { a[i]=in.nextInt(); } for(int i=0;i<n;i++) { for(int j=i+1;j<n;j++) { if(a[i]==a[j]) { a[j]=0; } } } insort(a,n); for(int i=0;i<n;i++) { if(a[i]!=0) { System.out.print(a[i]); System.out.print(" "); } } } }
相关文章推荐
- JAVA 数组排序
- 【算法设计】合并排序、自然合并排序与快速排序算法的Java实现
- Java 冒泡排序、选择排序、快速排序、归并排序
- Java程序员必知的8大排序
- Java语言基础-排序算法-选择排序
- java List 排序 Collections.sort()
- java--ArrayList 排序简述-------新手可看,大神勿喷
- Java自带排序方法
- 转载!!!Java中Collections类的排序sort函数两种用法
- Java递归遍历文件,根据文件大小排序
- 堆排序原理(java实现)
- Java中文汉字排序问题
- java遍历Properties并排序输出
- java排序总结 笔记
- Java实现排序算法之归并排序
- 排序(Java语言)——冒泡排序
- java 集合排序异常Exception in thread "main" java.lang.IllegalArgumentException: Comparison method violate
- Java Map 按key排序和按Value排序
- java中Collections.sort排序详解
- Java实现几种常见排序方法