永发信息网

求快速排序的例子,Free Pascal的

答案:4  悬赏:50  手机版
解决时间 2021-07-30 23:27
下星期就复赛了,求一个快排的例子来看看,复习一下
最佳答案
program kuaipai;
var
i,j,k,l,m,n:longint;
a:array[1..1000] of longint;
procedure qsort(m,n:Longint); var
i,j,k,t:longint;
begin
i:=m; j:=n; k:=a[(i+j) shr 1];
repeat
while a[i]>k do inc(i);
while a[j]<k do dec(j);
if i<=j then
begin
t:=a[i]; a[i]:=a[j]; a[j]:=t;
inc(i); dec(j);
end;
until i>j;
if m<j then qsort(m,j);
if i<n then qsort(i,n);
end;
begin
readln(k);
for i:=1 to k do read(a[i]);
qsort(1,k);
j:=0;
for i:=k downto 1 do
begin inc(j);write(a[i]:5);if j mod 10=0 then writeln; end;
end.格式:一行十个,你可以自己改,还有数组的大小。不懂可以加我Q。我也是OIER.
全部回答
var a:array[1..30000] of longint; s,i,j,k,n,m,x:longint; procedure try(h,t:longint); var i,j,x:longint; begin i:=h; j:=t; x:=a[i]; repeat while (i<j) and (a[j]>=x) do j:=j-1; if i<j then begin a[i]:=a[j]; i:=i+1; end; while (i<j) and (a[i]<=x) do i:=i+1; if i<j then begin a[j]:=a[i]; j:=j-1; end; until i=j; a[i]:=x; i:=i+1; j:=j-1; if i<t then try(i,t); if h<j then try(h,j); end;
#include<stdio.h> int partition(int a[],int p,int r) { int x,temp; int i,j; x=a[r]; i=p-1; for(j=p;j<=r-1;j++) { if(a[j]<=x) { i=i+1; temp=a[i]; a[i]=a[j]; a[j]=temp; } } temp=a[i+1]; a[i+1]=a[r]; a[r]=temp; return i+1; } void quicksort(int a[],int p,int r) { int q; if(p<r) { q=partition(a,p,r); quicksort(a,p,q-1); quicksort(a,q+1,r); } } void main() { int i,k; int b[100]; int m=0; printf("请输入要排序的个数: "); scanf("%d",&k); printf("请输入数:\n"); for(i=0;i<k;i++) scanf("%d",&b[i]); quicksort(b,m,k-1); for(i=0;i<k;i++) printf("%d ",b[i]); }
var a:array[0..9] of integer = (6,1,3,9,2,5,4,7,0,8); i:integer; procedure quicksort(l,r:longint); var x,i,j,t :longint; begin x:=a[random(r-l+1)+l]; (*随机选取支点*) i:=l;j:=r; repeat while a[i]<x do inc(i); while a[j]>x do dec(j); if i<=j then begin t:=a[i]; a[i]:=a[j]; a[j]:=t; inc(i);dec(j); end until i>j; if l<j then quicksort(l,j); if i<r then quicksort(i,r); end; begin quicksort(0, 9); for i:=0 to 9 do write(a[i], ' '); readln; end.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
伤感音乐网?
曾都区随州新天地商务宾馆地址是什么,有没有
我的格斗家转街霸是不是转错了?好用么?
云天空写的混也是一种生活续集出来了吗?
虚假的近义词,丑陋的近义词
石家庄最长的卡丁车道在哪啊?
如何用手机的钱充会员或黄钻?
为什么我的地下城到了18级也完成了转职任务,
该怎么去相信网络上的人?
为什么他跟我说跟分手他很开心
我是蓝钻,为什么连连看不能使用地图
apple touch的那个NIKE的怎么玩
沙市区荆州富发99这个地址怎么能查询到,着急
传奇世界可以设置让元神和灵兽捡药么 魔法药
DNF我一上线就网络中断怎么回事我也没用挂能
推荐资讯
用银联卡购物刷卡要收手续费吗?
龙沙区齐齐哈尔龙沙区正阳街道永青社区老年大
黄陂区武汉兴业银行24小时自助银行(汉口北大
表达尽职尽责的诗句,形容义警尽职尽责、不为
战地之王现在能玩吗?
开始对他变得无所谓了这是怎么回事呢?
朋友的背叛算什么
螺丝粉怎样做才好吃?
【英语提问1-1】选用方框内所给动词的适当形
解放区焦作新飞厨卫电器地址在哪里啊
想一个新颖,独特、浪漫、有创意的婚礼?
这道数学题怎么做?(用脱式计算)拜托各位了 3Q
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?