作业帮 > 综合 > 作业

Pascal数的统计数的统计【问题描述】在一个有限的正整数序列中,有些数会多次重复出现在这个序列中.如序列:3,1,2,

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/14 01:02:13
Pascal数的统计
数的统计
【问题描述】
在一个有限的正整数序列中,有些数会多次重复出现在这个序列中.
如序列:3,1,2,1,5,1,2.其中1就出现3次,2出现2次,3出现1次,5出现1次.
任务:对于给定的正整数序列,从小到大依次输出序列中出现的数及出现的次数.
【输入】
第一行正整数n,表示给定序列中正整数的个数.
第二行是n个用空格隔开的正整数x,代表给定的序列.
【输出】
若干行,每行两个用一个空格隔开的数,第一个是数列中出现的数,第二个是该数在序列中出现的次数.
【输入输出样例】
    

【数据规模和约定】
20%的数据:n<=1000;0<x<=1000,000.
50%的数据:n<=1000;0<x<=2,000,000,000.
100%的数据:n<=50,000;0<x<=2,000,000,000.
 
 
数据设计说明:
20%的数据:n<=1000;0<x<=1000,000.直接统计即可
50%的数据:n<=1000;0<x<=2,000,000,000.简单的排序后统计
100%的数据:n<=50,000;0<x<=2,000,000,000.快速排序后统计
var i,s,n:longint;
a:array[1..200000] of longint;
procedure s1(l,r:longint);
var t,mid,i,j:longint;
begin
i:=l;j:=r;
mid:=a[(i+j) div 2];
repeat
while a[i]mid do dec(j);
if ij;
if l
再问: 给我解释解释呗!!
再答: 就是先快排,然后扫过来,如果与前面一个数不同就输出,然后重新开始统计。