快速排序pascal程序
生活随笔
收集整理的這篇文章主要介紹了
快速排序pascal程序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意
排序
分析
數據規模太大,建議使用快排。
var
n,i:longint;a:array[0..100000]of longint;
procedure kp(l,r:longint);
var
i,j,mid:longint;
begin
? ? if l>=r then exit;
? ? i:=l;j:=r;mid:=a[(l+r) div 2];
? ? repeat
? ? ? ? ?while a[i]<mid do inc(i);
? ? ? ? ?while a[j]>mid do dec(j);
? ? ? ? ?if i<=j then
? ? ? ? ?begin
? ? ? ? ? ? ?a[0]:=a[i];a[i]:=a[j];a[j]:=a[0];
? ? ? ? ? ? ?inc(i);dec(j);
? ? ? ? ?end;
? ? until i>j;
? ? kp(l,j);
? ? kp(i,r)
end;
begin
? ? readln(n);
? ? for i:=1 to n do
? ? read(a[i]);
? ? kp(1,n);
? ? for i:=1 to n do
? ? write(a[i],' ');
end.
轉載于:https://www.cnblogs.com/YYC-0304/p/9500214.html
總結
以上是生活随笔為你收集整理的快速排序pascal程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 排队接水pascal程序
- 下一篇: 奖学金pascal程序