永发信息网

pascal的快速排序,堆排序的例子(或源代码)

答案:3  悬赏:10  手机版
解决时间 2021-01-28 05:12
pascal的快速排序,堆排序的例子(或源代码)
最佳答案
快排
procedure qsort ( l , r : longint );
var
i , j , m , t : longint;
begin
i := l;
j := r;
m := ans [ ( i + j ) div 2 ];
repeat
while ans [ i ] < m do inc ( i );
while ans [ j ] > m do dec ( j );
if i <= j then
begin
t := ans [ i ];
ans [ i ] := ans [ j ];
ans [ j ] := t;
inc ( i );
dec ( j );
end;
until i > j;
if l < j then qsort ( l , j );
if i < r then qsort ( i , r );
end;
堆排:
program duipx;
const n=8;
type arr=array[1..n] of integer;
var a:arr;i:integer;
procedure sift(var a:arr;l,m:integer);
var i,j, t:integer;
begin
i:=l;j:=2*i;t:=a[i];
while j<=m do
begin
if (ja[j+1]) then j:=j+1;
if t>a[j] then begin a[i]:=a[j];i:=j;j:=2*i; end
else exit;
a[i]:=t;
end;
end;

begin
for i:=1 to n do read(a[i]);
for i:=(n div 2) downto 1 do
sift(a,i,n);
for i:=n downto 2 do
begin
write(a[1]:4);
a[1]:=a[i];
sift(a,1,i-1);
end;
writeln(a[1]:4);
end.

顺便给你几个练习题吧
tyvj:P1001 第K极值
P1388中中打丢丢
全部回答
freepascal中就内置了快排、 在C:\FPC\2.0.4\demo\text里面有个qsort.pp 这个考试的时候可以直接用的、
procedure kp ( l , r : longint ); var i , j , m , t : longint; begin i := l; j := r; m := ans [ ( i + j ) div 2 ]; repeat while ans [ i ] < m do inc ( i ); while ans [ j ] > m do dec ( j ); if i <= j then begin t := ans [ i ]; ans [ i ] := ans [ j ]; ans [ j ] := t; inc ( i ); dec ( j ); end; until i > j; if l < j then kp ( l , j ); if i < r then kp ( i , r ); end;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
驭胜330做首保 灯光升级吗
五行养生会所怎么去啊,我要去那办事
薇薇美甲地址好找么,我有些事要过去
组织内的在岗培训与开发的缺点( )。A.学习
鞍山有线宽带的网都很差么?
停车场(圣世宫东南)地址在什么地方,想过去办
五堰天利养生中心地址有知道的么?有点事想过
眼镜腿上的皮套被我弄掉了 可是为什么确安不
敌我矛盾的意思是什么啊?知道的请说下!
信息与计算科学本科专业想考“纯数学专业”研
某电影院位于一地下人防工程的地下二层整层,
emme艾美美甲美睫公馆地址在哪,我要去那里办
在鹿邑办暂住证好办吗
欧陆风云4哪些dlc是必需的
关于鸟类体温恒定的原因,下面叙述不正确的是
推荐资讯
太阳镜挂的好还是夹的好
abcdef六个字母的全排列,abcdee的全排列是多
骆驼祥子一次买车后被大兵抢走读后感
耽美温馨父子或兄弟文,求推荐
辛大加油站地址在什么地方,想过去办事
和砷出生在什么地方???????
宪牌的意思是什么啊?知道的请说下!
樂桌游地址在哪,我要去那里办事
niice翻译成汉语是什么意思
共射放大电路的Ucc为什么除提供集电结还能能
小乌龟为什么不爱动
AMA生能空气能热水器(高州专卖店)地址在哪,
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?