Description
用计算机随机生成了N个0到1000000000(包含0和1000000000)之间的随机整数(N≤5000000),对于其中重复的数字,只保留一个,把其余相同的数去掉。然后再把这些数从小到大排序。
请你完成“去重”与“排序”的工作
Input
输入有2行,第1行为1个正整数,表示所生成的随机数的个数:
N
第2行有N个用空格隔开的正整数,为所产生的随机数。
Output
输出也是2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。
Sample Input
10
20 40 32 67 40 20 89 300 400 15
Sample Output

8
15 20 32 40 67 89 300 400

code:

View Code

#include<stdio.h>#include<stdlib.h>#include<string.h>int b[5000001];int top;typedef struct node{int count;struct node *left ;struct node *right;}node,*trie;void init(trie &p){    p=(trie)malloc(sizeof(node));    p->count=-1;    p->left=NULL;    p->right=NULL;}void add(trie &p,int m){if(m==p->count)return;if(p->count==-1)    {        p->count=m;return;    }if(m<p->count)    {        trie q;        q=p->left;if(q==NULL)        {            init(q);            p->left=q;        }        add(q,m);    }else    {        trie q;        q=p->right;if(q==NULL)        {            init(q);            p->right=q;        }        add(q,m);    }}void get(trie &p){if(p)    {get(p->left);        b[top++]=p->count;get(p->right);    }}int main(){int i,m,n;while(scanf("%d",&n)!=EOF)    {        trie root;        init(root);for(i=0;i<n;i++)        {            scanf("%d",&m);            add(root,m);        }        top=0;get(root);        printf("%d\n",top);        printf("%d",b[0]);for(i=1;i<top;i++)            printf(" %d",b[i]);        printf("\n");    }return 0;}

转载于:https://www.cnblogs.com/dream-wind/archive/2012/03/16/2400033.html

HLG 数字去重和排序II【二叉排序树】相关推荐

  1. excel函数去重_将数字去重,然后按从小到大的顺序连接起来!

    你好,我是刘卓.欢迎来到我的公号,excel函数解析.今天来分享一个案例--对数字去重,排序,连接.-01-下图A1:I7是数据源,都是0-9之间的数字.现在的要求是将每行的数字去重,然后按从小到大的 ...

  2. javascript实现 文本过滤 找出一段文本中的所有数字/数值 并在去重后排序

    文章目录 Intro 浏览器控制台 JavaScript API测试 从一串文本中按照某种模式提取出匹配的子字符串 String.prototype.match(regexp) 数组去重 Array- ...

  3. java随机数去重排序_数组去重及排序/0~10随机数字/字符串中出现最多的字符及次数...

    数组去重及排序: var arr = [1,5,1,2,6,8,1,81,9,0]; for(var i=0;i for(var j=i+1;j if(arr[i] == arr[j]){ arr.s ...

  4. MapReduce基础开发之二数据去重和排序

    因Hadoop集群平台网络限制,只能在eclipse里先写好代码再提交jar到集群平台namenode上执行,不能实时调试,所以没有配置eclipse的hadoop开发环境,只是引入了hadoop的l ...

  5. linux统计排序命令,Linux命令去重统计排序

    利用Linux命令进行文本按行去重并按重复次数排序 linux命令行提供了非常强大的文本处理功能,组合利用linux命令能实现好多强大的功能.本文这里举例说明如何利用Linux命令行进行文本按行去重并 ...

  6. C++数组去重与排序

    一.整型数组去重与排序: [题目描述] 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把 ...

  7. 超简单的C++去重、排序

    一.去重函数unique 头文件:algorithm,所以别忘了加上一句:#include <algorithm> unique的作用就是"去除"数组中重复的元素 #i ...

  8. 数组元素的去重与排序

    003-华为机试-在线训练 题目描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把 ...

  9. 【leetcode】324.摆动排序 II (四种解法,快速排序+3way-partition等,java实现)

    324. 摆动排序 II 难度中等 给定一个无序的数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序. 示例 1 ...

最新文章

  1. 《Web接口开发与自动化测试 -- 基于Python语言》 ---前言
  2. 『中级篇』阿里云安装Docker企业版UCP和DTR(59)
  3. 为全局变量赋值_Postman全局变量设置和运用
  4. 《速读ES7》新增特性目录列表
  5. java学习是什么_学习JAVA有什么作用?
  6. [ 2022年4月8日更新 ]Typecho Handsome主题美化教程
  7. Laravel 使用firstOrCreate 报错MassAssignmentException
  8. 三种编码器协议(Endat\BISS\SSI)
  9. word参考文献后面空格太大
  10. win10关闭windows聚焦_Windows聚焦功能无法使用怎么办_win10锁屏聚焦功能不更新教程 - 系统家园...
  11. ESP32播放MP3音乐-无需SD卡-WM8978-ESP32解码MP3
  12. 计算机表格常用根式,平方根表
  13. 传统蓝牙BR/EDR的搜索Inquiry
  14. 【Bug解决】UnpicklingError: A load persistent id instruction was encountered, but no persistent_load.
  15. 回顾12306 成长的烦恼
  16. Android Studio 如何查看Sqlite数据文件
  17. linux美元符号含义
  18. Ubuntu 16.04 使用burg修改开机引导主题
  19. LSTM(long short term memory)长短期记忆网络
  20. openstack glance-api-paster

热门文章

  1. FPGA扩展SRAM
  2. 看完Mate 10拍下的精美空中照片后,你是否也想坐次飞机试拍下?
  3. andorid 三种方式的练习
  4. C# 版本设计模式(Design Pattern)(转)
  5. Linux(CentOS)系统下设置nginx开机自启动
  6. 用于jqGrid获取SQL Server中数据的简单分页存储过程及sp_executesql的一点使用方法...
  7. 【重点 递归 动态规划 正则表达式匹配】LeetCode 10. Regular Expression Matching
  8. Excel按某一列排序
  9. python的list()列表数据类型的方法详解
  10. 洛谷 P2647 最大收益