明明的随机数(快排)

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。

输入格式:
输入有2行
第1行为1个正整数,表示所生成的随机数的个数:N
第2行有N个用空格隔开的正整数,为所产生的随机数。

输出格式:
输出也是2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。

样例 1 :
输入:
10
20 40 321 67 40 20 89 301 407 15
输出:
8
15 20 40 67 89 301 321 407

样例 2 :
输入:
20
20 40 321 677 40 20 89 301 407 515 40 321 67 40 20 89 301 407 15 499
输出:
11
15 20 40 67 89 301 321 407 499 515 677

思路分析:首先通过快排将待排数据由小到大排序,然后相邻进行比较。若不相同则number++计数,最后输出number+1,因为比较到,倒数第二个和倒数第一个比较,但是若倒数第二个和倒数第一个相同,此时需要计数一个。同样,再次比较,若相邻俩数不同则输出,最后比较到,倒数第二个和倒数第一个,若倒数第二个和倒数第一个相同,此时也得输出一个,我这里是直接将最后一个数给输出。

代码如下:

#include <iostream>
#include <stdio.h>
using namespace std;
int a[101],N;void quicksort(int left,int right){//快排int i,j,t,temp;if(left>right){return;}temp=a[left];i=left;j=right;while(i!=j){while(a[j]>=temp && i<j){j--;}while(a[i]<=temp && i<j){i++;}if(i<j){t=a[i];a[i]=a[j];a[j]=t;}}a[left]=a[i];a[i]=temp;quicksort(left,i-1);quicksort(i+1,right);
}int main()
{int i,j,number=0;scanf("%d",&N);for(i=1;i<=N;i++){scanf("%d",&a[i]);}quicksort(1,N);for(j=1;j<N;j++){//到N-1结束if(a[j]!=a[j+1]){//相邻两数不相等,开始计数number++;}}printf("%d\n",number+1);//若最后两个数相同,需要输出一个,即number+1for(j=1;j<N;j++){//到N-1结束if(a[j]!=a[j+1]){//相邻两数不相等,开始输出即可printf("%d ",a[j]);}}printf("%d",a[N]);//若最后两个数相同,需要输出一个,这里我是将最后一个数输出return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/378998.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ffplay分析 (seek操作处理)

《ffplay的数据结构分析》 《ffplay分析&#xff08;从启动到读取线程的操作&#xff09;》 《ffplay分析&#xff08;视频解码线程的操作&#xff09;》 《ffplay分析&#xff08;音频解码线程的操作&#xff09;》 《ffplay 分析&#xff08;音频从Frame(解码后)队列取数据到…

android 代码设置 键盘适应_硬核软件,能在电脑上控制iPhone和Android手机

在电脑上控制手机大概已经不是什么新鲜操作&#xff0c;小米、华为都为自家手机和电脑的联动推出了同屏操作之类的功能&#xff0c;此外也可以通过开源软件Scrcpy来在Windows或者macOS上实现对安卓手机的控制&#xff0c;这些基本都只针对安卓手机。近期&#xff0c;奇客君发现…

网址出现error.aspx?aspxerrorpath=404.htm?aspxerrorpath=的原因及解决办法转

网址出现aspxerrorpath的问题描述 1.网页打不开了,输入网址后就提示error.aspx?aspxerrorpath/about-us.html&#xff0c;到底是什么原因啊&#xff1f; 2.ASP网站自定义了404错误页&#xff0c;但访问不存在的网址时网址错误页后面总多出aspxerrorpath参数&#xff0c;怎么解…

ruby hash方法_Ruby中带有示例的Hash.default(key = nil)方法

ruby hash方法Hash.default(key nil)方法 (Hash.default(keynil) Method) In this article, we will study about Hash.default(keynil) Method. The working of this method can be predicted with the help of its name but it is not as simple as it seems. Well, we will…

回文数、括号匹配(栈操作)

回文数 “xyzyx”是一个回文字符串&#xff0c;所谓回文字符串就是指正读反读均相同的字符序列&#xff0c;如“席主席”、“记书记”、“aha”和“ahaha”均是回文&#xff0c;但“ahah”不是回文。输入一行字符&#xff08;仅包含小写英文字母a~z&#xff09;请判断这行字符…

ijkplayer 消息循环处理过程分析

ijkplayer 消息循环处理过程分析简介一、消息队列初始化1、 initWithContentURLString函数2、 ijkmp_ios_create函数3、 ijkmp_create函数二、消息队列的消息循环处理函数启动1、prepareToPlay函数2、ijkmp_prepare_async函数3、ijkmp_prepare_async_l函数4、ijkmp_msg_loop函数…

json解析对应的value为null_徒手撸一个JSON解析器

Java大联盟致力于最高效的Java学习关注作者 | 田小波cnblogs.com/nullllun/p/8358146.html1、背景JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。相对于另一种数据交换格式 XML&#xff0c;JSON 有着诸多优点。比如易读性更好&#xff0c;占用空间更少等。在 …

[一]设计模式初探

模式&#xff0c;顾名思义&#xff0c;就是做一种事情的方法归纳&#xff0c;就经验来说&#xff0c;做什么事情有个好的方法来应对都是可以事半功倍的&#xff0c;在软件开发中何谓好的模式? 我认为好的模式简单来说就是保证你应对需求变化的时候不用做更多的代码修改&#x…

Gentoo - ssh-agent配置

现在使用类似github这样的service&#xff0c;一般来说都会配置ssh key认证。所以使用ssh-agent来管理私钥就变的必要。在Gentoo下是这么配置的&#xff1a;- sudo emerge -avt keychain- 编辑.bashrc&#xff0c;加入keychain <private key 1 path> ... <private key…

java 方法 示例_Java ArrayDeque offerFirst()方法与示例

java 方法 示例ArrayDeque类offerFirst()方法 (ArrayDeque Class offerFirst() method) offerFirst() Method is available in java.lang package. offerFirst()方法在java.lang包中可用。 offerFirst() Method is used to add the given element at the front of this deque. …

平院Python习题

在读写文件之前&#xff0c;用于创建文件对象的函数是&#xff08; A &#xff09;。 A&#xff0e; open B&#xff0e; create C&#xff0e; file D&#xff0e;folder 解析&#xff1a; open(file, mode‘r’, buffering-1, encodingNone, errorsNone, newlineNone, close…

搭建srs服务器(rtmp)

搭建srs服务器&#xff08;rtmp&#xff09; 目录:1、下载srs源码&#xff08;从码云上&#xff09;&#xff1a;2、 切换到srs.oschina&#xff1a;3、 这里使用3.0版本&#xff1a;4、 切换到trunk&#xff1a;5、 编译&#xff1a;6、 启动&#xff1a;7、查看日志输出&…

MOSS信息管理策略定制(MOSS custom policies)

MOSS引入了信息管理策略&#xff0c;通过给文档库或列表附加一些策略可以实现一些自动化的功能&#xff0c;如自动给文档打标签&#xff0c;强制文档的审核&#xff0c;启用文档的过期&#xff0c;甚至可以在用户打印文档时插入条形码。难么&#xff0c;这么好用的功能是怎么实…

2560介绍_炒股高手收益翻10倍,只因妙用这一招2560战法,看了都不亏了

(本文由公众号越声研究(yslc927yj)整理&#xff0c;仅供参考&#xff0c;不构成操作建议。如自行操作&#xff0c;注意仓位控制和风险自负。)选股是每个刚入市的新股民需掌握的技巧&#xff0c;通过资金选股了解资金流向&#xff0c;善用工具轻松选股&#xff0c;同时多留意行业…

二进制搜索树_将排序的数组转换为二进制搜索树

二进制搜索树Problem statement: 问题陈述&#xff1a; Given an array where elements are sorted in ascending order, convert it to a height balanced BST. 给定一个数组&#xff0c;其中元素按升序排序&#xff0c;请将其转换为高度平衡的BST。 For this problem, a he…

rtmp协议分析(三次握手)

RTMP详细分析(Message 消息&#xff0c;Chunk分块) librtmp分析&#xff08;发送数据包处理&#xff09; librtmp分析&#xff08;接收数据包处理&#xff09; RTMP协议是Real Time Message Protocol(实时信息传输协议)的缩写&#xff0c;它是由Adobe公司提出的一种应 用层的协…

OpenAPI系列: 六、OpenAPI策略分析

一、如何注册 为什么要注册&#xff1f;访问 OpenAPI必须拥有Consumer Key和Consumer Secret。 如何注册&#xff1f;要获取Consumer Key及Consumer Secret&#xff0c;需要消费方&#xff08;Consumer&#xff09;向服务提供方申请注册&#xff0c;服务提供方审核通过后会向消…

压缩、解压 解决 客户端查询大批量数据时等待时间过长的问题

在项目中查询时&#xff0c;因数据量大&#xff0c;导致网络传输很慢&#xff0c;这就需要在服务器端查询出的数据进行压缩处理&#xff0c;后传输完了在客户端进行解压处理&#xff08;此为在Silverlight中压缩与解压&#xff09;&#xff1b; 具体方法如下&#xff1a; using…

C---已知正整数n是两个不同的质数的乘积,试求出较大的那个质数。

已知正整数n是两个不同的质数的乘积&#xff0c;试求出较大的那个质数。 思路&#xff1a;由题意可知&#xff0c;n为两个质数之积&#xff0c;也就是说只要找到一个数能够被n整除&#xff0c;这个数一定是质数&#xff01;&#xff01;&#xff01;2为最小的质数&#xff0c;…

isnumeric_Python字符串| isnumeric()方法与示例

isnumericisnumeric() is an in-built method in Python, which is used to check whether a string contains only numeric values or not. isnumeric()是Python中的内置方法&#xff0c;用于检查字符串是否仅包含数字值。 Numeric contain all decimal characters and the f…