回 帖 发 新 帖 刷新版面

主题:[讨论]关于排序

10000个数以上个数排序用快排还是太慢。不知各位大牛是否有别的办法。如能解决问题小弟感激不尽!!!

回复列表 (共5个回复)

沙发

若数的范围不是很大。。可以考虑计数排序。。

板凳

[size=2]用用堆排,但是时间复杂度也时O(n log [size=1]2 [/size]n)[/size]

3 楼

什么是堆排

4 楼

统排也OK的~~
program px;
var i,j:longint;
    s:array [1..100000] of boolean;
begin
  fillchar(s,sizeof(s),false);
  readln(n);
  for i:=1 to n do
  begin
    readln(j);
    s[j]:=true;
  end;
  for i:=1 to n do
    if s[i] then write(s[i],' ');
end.

5 楼

不过如果超过1000000的话数组也会爆```

我来回复

您尚未登录,请登录后再回复。点此登录或注册