一个数组的排序问题 ( 积分: 100 )

  • 主题发起人 主题发起人 1259shiyong
  • 开始时间 开始时间
1

1259shiyong

Unregistered / Unconfirmed
GUEST, unregistred user!
一个整数组成的数组,如何统计出里面各个整数出现的频率,数组的长度约10000,
元素的整数的类型是word
最高值和最低的值需要指出他在数组中的位置.
希望高手指点一下该如何的计算
 
一个整数组成的数组,如何统计出里面各个整数出现的频率,数组的长度约10000,
元素的整数的类型是word
最高值和最低的值需要指出他在数组中的位置.
希望高手指点一下该如何的计算
 
讲具体点,那数组中有五千个不重复的,
是不是把这五千个不同的数出现的频率都罗列出来?
 
type
TIntArr = array [0..65535] of Integer;

var
r: TIntArr;
MinP, MaxP: Integer;
Min, Max: Integer;
i: Integer;
begin
FillChar(r, SizeOf(r), 0);
Max:=-1;
Min:=65536;

for i:=1 to 10000 do
begin
Inc(r[a]);
if a<Min then
begin
Min:=a;
MinP:=i
end;
if a>Max then
begin
Max:=a;
MaxP:=i
end
end
end;
做完后,频度在r里,最大最小值位置在maxp和minp里
 
另外声明3个链,分别记录数组的数,按从小到大插入,数组的数的出现的次数,及数组里数最后出现的地点....对链的操作有(插入,新增,及2分法查找).想想速度应该不会很慢.
 
楼上的各位:
我真的是一只菜鸟,LeeChange兄的我有点看不懂.能否解释一下一下语句:
FillChar(r, SizeOf(r), 0);
Max:=-1;
Min:=65536;
---------------------------
Inc(r[a]);
if a<Min then
--------------------------------------------
另外需要说明的是每个数字出现的频度.
 
to:alllovewg
你能否做个demo列出所有的数字按原数组的顺序列出各个数字出现的频度.
 
后退
顶部