精华内容
下载资源
问答
  • cout排序过后的ISBN编号依次为:"; for(i=1;i;i++){//依次判断1~1000这1000个桶(即编号范围在1~1000) if(a[i]==1){ //如果这个ISBN号出现过则打印出来 cout; } }/*O(M)*/ getchar(); return 0; ...
    #include<iostream>
    using namespace std;
    int main(){
    	int a[1001],n,i,t;//M=1000
    	for(i=1;i<=1000;i++){
    		a[i]=0;
    	}
    	
    	cout<<"请输入共有多少本书,即n=";
    	cin>>n;
    	cout<<"请依次输入各本书的ISBN编号:"<<endl;
    	for(i=1;i<=n;i++){//循环读入n个图书的ISBN号 
    		cin>>t;//把每一个ISBN编号读到变量t中
    		a[t]=1;//标记出现过的ISBN号 
    	}/*O(N)*/
    	
    	cout<<"排序过后的ISBN编号依次为:"<<endl;
    	for(i=1;i<=1000;i++){//依次判断1~1000这1000个桶(即编号范围在1~1000) 
    		if(a[i]==1){
    			//如果这个ISBN号出现过则打印出来
    			cout<<i<<" "; 
    		}
    	}/*O(M)*/ 
    	
    	getchar();
    	return 0;
    }
    
    /*整个算法的时间复杂度是O(N+M)*/
    

    展开全文
  • TreeSet:去重排序方法1、TreeSet同样在存储字符串时会自动对字符串进行排序排序但对于存储对象元素的集合来说还是需要我们自定义规则,根据规则重写方法进行排序TreeSet存储字符串自动实现排序的原理:在往...

    TreeSet:去重与排序

    方法1、

    TreeSet同样在存储字符串时会自动对字符串进行排序与排序

    但对于存储对象元素的集合来说还是需要我们自定义规则,再根据规则重写方法进行排序

    TreeSet存储字符串自动实现排序的原理:

    在往集合添加元素时,add()方法调用了字符串的compareTo方法

    compareTo方法时来自于Comparable接口,并按照字典顺序比较两个字符串

    注:默认是升序并且是按照字典排序

    解释下字典顺序:

    * 字典顺序:按照ASCII表比较当前的两个字符,ASCII码大的认为是大的字符

    * 规则:从左边第一个字符开始比较

    * 如果当前的字符不相同,直接认为ASCII大的字符串是大字符串,后面的字符停止比较

    * 当前字符比较的具体规则:使用前面的字符-后面的字符,返回差值.如果是负数,说明前面的字符串小于后面的.反之前面的大.

    * 如果当前的字符相同,再去比较第二个字符,依次往后推,如果比到最后都相同,则认为两个字符串相等,差值返回0.

    所以和上面一样,我们同样要重写对应的方法来排序,我们要重写compareTo()方法

    建类实现Comparable接口

    class Person implements Comparable{

    String name;

    int age;

    public Person(String name, int age) {

    super();

    this.name = name;

    this.age = age;

    }

    //重写compareTo方法

    //按照姓名和年龄比较,只要姓名和年龄相同就认为是同一个人

    public int compareTo(Object obj){

    //首先进行容错处理

    if(!(obj instanceof Person)){

    throw new ClassCastException();

    }

    //向下转型

    Person person=(Person)obj;

    //先按照年龄比,年龄相同再按照姓名比

    int num=age-person.age;

    return num==0?name.compareTo(person.name):num;

    }

    public static void main(String[] args) {

    //实例:将Person的对象存储入TreeSet,实现排序和去重

    TreeSet set1 = new TreeSet<>();

    set1.add(new Person("bobo", 20));

    set1.add(new Person("bobo", 18));

    set1.add(new Person("bobo3", 200));

    set1.add(new Person("bobo5", 20));

    set1.add(new Person("bobo", 20));

    System.out.println(set1);

    }

    }

    方法2、

    TreeSet的第二种排序方式:使用实现了Comparator接口的比较器对象实现比较

    总结:对TressSet的排序有两种方式:

    1、实现Comparable接口的compareTo方法---系统排序

    2、实现Comparetor接口的compare方法---人工排序

    系统让人工排序的优先级高于系统排序,方便人工排序的实现

    实例:实现将字符串按照从短到长排序,长度相同按照字典排序

    //创建比较器

    class  ComWithLength implements Comparator{

    public int compare(Object o1,Object o2){    //首先进行容错处理

    if(!(o1 instanceof String)){

    throw new ClassCastException("类型转换错误");

    }

    if(!(o2 instanceof String)){

    throw new ClassCastException("类型转换错误");

    }

    //向下转型

    String s1=(String)o1;

    String s2=(String)o2;   //字符串按照从短到长排序,长度相同按照字典排序

    int num=s1.length()-s2.length();

    return num==0?s1.compareTo(s2):num;

    }

    }

    public static void main(String[]args){   //创建一个比较器对象

    ComWithLength comWithLength = new ComWithLength();   //将比较器对象传给当前的TreeSet对象

    TreeSet set=new TreeSet<>(comWithLength);

    set.add("java1ttt");

    set.add("java4");

    set.add("java3kk");

    set.add("java1");

    System.out.println(set);

    }

    上一篇:java基础 去重2(HashSet对象集合):https://blog..net/qq_39081169/article/details/81556789

    展开全文
  • TreeSet:去重排序方法1、 TreeSet同样在存储字符串时会自动对字符串进行排序排序 但对于存储对象元素的集合来说还是需要我们自定义规则,根据规则重写方法进行排序 TreeSet存储字符串自动实现排序的原理: ...

    TreeSet:去重与排序
    方法1、
    TreeSet同样在存储字符串时会自动对字符串进行排序与排序
    但对于存储对象元素的集合来说还是需要我们自定义规则,再根据规则重写方法进行排序

    TreeSet存储字符串自动实现排序的原理:
    在往集合添加元素时,add()方法调用了字符串的compareTo方法
    compareTo方法时来自于Comparable接口,并按照字典顺序比较两个字符串
    注:默认是升序并且是按照字典排序

        解释下字典顺序:
    * 字典顺序:按照ASCII表比较当前的两个字符,ASCII码大的认为是大的字符
    * 规则:从左边第一个字符开始比较
    * 如果当前的字符不相同,直接认为ASCII大的字符串是大字符串,后面的字符停止比较
    * 当前字符比较的具体规则:使用前面的字符-后面的字符,返回差值.如果是负数,说明前面的字符串小于后面的.反之前面的大.
    * 如果当前的字符相同,再去比较第二个字符,依次往后推,如果比到最后都相同,则认为两个字符串相等,差值返回0.

    所以和上面一样,我们同样要重写对应的方法来排序,我们要重写compareTo()方法

    建类实现Comparable接口
     
    class Person implements Comparable{
        String name;
        int age;
        public Person(String name, int age) {
            super();
            this.name = name;
            this.age = age;
        }

        //重写compareTo方法
        //按照姓名和年龄比较,只要姓名和年龄相同就认为是同一个人

        public int compareTo(Object obj){
            //首先进行容错处理
            if(!(obj instanceof Person)){
                throw new ClassCastException();
            }

            //向下转型
            Person person=(Person)obj;
            
            //先按照年龄比,年龄相同再按照姓名比
            int num=age-person.age;
            return num==0?name.compareTo(person.name):num;
        
        }

    public static void main(String[] args) {

            //实例:将Person的对象存储入TreeSet,实现排序和去重
            TreeSet set1 = new TreeSet<>();
            set1.add(new Person("bobo", 20));
            set1.add(new Person("bobo", 18));
            set1.add(new Person("bobo3", 200));
            set1.add(new Person("bobo5", 20));
            set1.add(new Person("bobo", 20));
            
            System.out.println(set1);
        }
    }

    方法2、
    TreeSet的第二种排序方式:使用实现了Comparator接口的比较器对象实现比较

    总结:对TressSet的排序有两种方式:
    1、实现
    Comparable接口的compareTo方法---系统排序
    2、实现
    Comparetor接口的compare方法---人工排序

    系统让人工排序的优先级高于系统排序,方便人工排序的实现

    实例:实现将字符串按照从短到长排序,长度相同按照字典排序

    //创建比较器
    class  ComWithLength implements Comparator{
        
        public int compare(Object o1,Object o2){
        
        //首先进行容错处理
            if(!(o1 instanceof String)){
                throw new ClassCastException("类型转换错误");
                }

            if(!(o2 instanceof String)){
                throw new ClassCastException("类型转换错误");
                }

            //向下转型
            String s1=(String)o1;
            String s2=(String)o2;
         
       //字符串按照从短到长排序,长度相同按照字典排序
            int num=s1.length()-s2.length();
            return num==0?s1.compareTo(s2):num;
            }
        }

        public static void main(String[]args){
         
       //创建一个比较器对象
            ComWithLength comWithLength = new ComWithLength();
            
         
       //将比较器对象传给当前的TreeSet对象
            TreeSet set=new TreeSet<>(comWithLength);
            set.add("java1ttt");
            set.add("java4");
            set.add("java3kk");
            set.add("java1");
            
            System.out.println(set);
        }


    上一篇:java基础 去重2(HashSet对象集合):https://blog.csdn.net/qq_39081169/article/details/81556789

    展开全文
  • 去重+排序

    2019-07-12 13:01:01
    题目描述 明明想在学校中请一些...然后把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。 Input Para...

    题目描述
    明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。

    Input Param

    n 输入随机数的个数

    inputArray n个随机整数组成的数组

    Return Value

    OutputArray 输出处理后的随机整数

    注:测试用例保证输入参数的正确性,答题者无需验证。测试用例不止一组。

    输入描述:
    输入多行,先输入随机整数的个数,再输入相应个数的整数

    输出描述:
    返回多行,处理后的结果

    示例1
    输入

    11
    10
    20
    40
    32
    67
    40
    20
    89
    300
    400
    15
    输出

    10
    15
    20
    32
    40
    67
    89
    300
    400

    直接上代码:
    import java.util.Scanner;
    import java.util.TreeSet;

    public class Main{
    public static void main(String [] args){
    Scanner input = new Scanner(System.in);
    while(input.hasNext()){
    int num = input.nextInt();
    TreeSet set=new TreeSet();
    for(int i=0;i<num;i++){
    int curr=input.nextInt();
    set.add(curr);
    }
    for(Integer n:set){
    System.out.println(n);
    }
    }
    }
    }

    展开全文
  • 去重排序

    2018-05-30 19:22:33
    【问题描述】明明想在学校中请一些同学一起做一项...然后把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。Input Param n 输入随机数的个数 inputArray n 个随...
  • 去重排序

    2017-09-04 20:02:14
    明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观...然后把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。 import java.util.Scanner; public class
  • 去重排序(Java)

    2021-04-03 11:58:59
    然后把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。Input Param n 输入随机数的个数 inputArray n 个随机整数组成的数组 Return Value OutputArray 输出处理后...
  • 字符串去重排序

    千次阅读 2018-05-03 22:52:32
    [编程|100分] 字符串去重排序 时间限制:C/C++ 1秒,其他语言 2秒 空间限制:C/C++ 32768K,其他语言 65536K 题目描述 输入一个长度不超过10位的正整数,从左向右阅读,去除重复的数字,从右向左...
  • 随机数去重排序

    2018-02-23 12:12:13
    问题描述蒜头君想在学校中请一些同学一起做一...然后把这些数从小到大排序,按照排好的顺序去找同学做调查。 请你协助蒜头君完成“去重”与“排序”的工作。 输入格式 共两行,第一行为一个正整数n。 第二行有...
  • Python3-list(列表)去重排序

    万次阅读 2018-06-25 00:27:00
    python中对list去重操作 list(set(list)) --先将列表转化为set,转化为list就可以实现去重操作 排序函数 list.sort() --用sort即可实现排序
  • java-去重排序

    2020-08-21 22:54:13
    然后把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。Input Param n 输入随机数的个数 inputArray n 个随机整数组成的数组 Return Value OutputArray 输出处理后...
  • 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性...然后把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。InputParamn输入随机数的个数inputArra...
  • 明明想在学校中请一些同学...请你协助明明完成“去重”与“排序”的工作。 输入描述: 先输入整数n ( n< =1000),输入n个数的整数 输出描述: 返回处理后的结果 输入例子: 11 10 20 40 32 67 40 20 89 300 400 15
  • 题目描述 Description 明明想在学校中请一些同学一起做一项问卷调查,为了...然后把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。 输入描述 Input Descriptio
  • 对数组去重排序

    千次阅读 2018-03-18 00:36:52
    时间限制:1秒 空间限制:32768K 热度指数:268402本题知识点: 数组 算法知识视频讲解题目描述明明想在学校中请一些...然后把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”...
  • 11:去重排序

    2016-08-12 00:08:00
    11:题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先...然后把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。 InputParam n...
  • 003-华为机试-在线训练 题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机...请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正...
  • rqnoj 1 去重+排序

    2016-01-17 16:34:59
    题目描述 明明想在学校中请一些...然后把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。 输入格式 输入有2行,第1行为1个正整数,表示所生成的随机数的个数:
  • 去重 排序

    2020-07-27 17:02:19
    然后把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成去重”与排序”的工作。 输入:第一行为1个正整数,表示所生成的随机数的个数n。第二行有n个用空格隔开的正整数,为所产生的随机数。 ...
  • 去重+排序】——立马想到Set集合的特点 ...然后把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成**“去重”与“排序”**的工作(同一个测试用例里可能会有多组数据,希...
  • 题目 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他...然后把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。| Input Param n 输入随机数的
  • 严正声明:本文系作者davidhopper原创,未经许可,不得转载。 题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成...请你协助明明完成“去重”与“排序”的工作(同一个测...
  • 题目描述: 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性 他先用计算机生成了N个1~1000之间的随机整数(N&amp;lt;=1000),N是用户输入&...去重”与排序工作 import random N ...
  • 描述小明的老师布置了一份调查作业,小明想在学校中请一些同学一起做一项问卷调查,聪明的小明为了...然后把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。输...
  • 数组的去重排序

    2017-04-24 15:15:56
    做在线编程题遇到一道题,发现有比较好...输入多行,先输入整数的个数,然后输入相应的整数。 输出描述 返回多行处理后的结果。 例子 输入: 6 12 23 1 23 5 1输出: 1 5 12 23我的答案: import java.util.ArrayL
  • 对数字去重排序

    2014-09-16 19:12:56
    Description 明明想在学校中请一些同学一起做一项...然后把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。 Input 输入有2行: 第1行为1个正整数,表示所生成的随
  • #include <string> #include<iostream> #include <algorithm> void test3() ... 然后把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重” 与“排序”的工
  • python中对list去重操作 list(set(list)) --先将列表转化为set,转化为list就可以实现去重操作 1 排序函数 list.sort() --用sort即可实现排序
  • 把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成去重"与排序的工作。 输入 第一行为1个正整数,表示所生成的随机数的个数n。 第二行有n个用空格隔开的正整数,为所产生的随机数。 输出 第...
  • 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用...然后把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。Input Param n 输入随机数的个数

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,320
精华内容 528
关键字:

去重再排序