📄 希尔排序.pas
字号:
unit Unit23;
interface
type
TCoefWrapInt=record
Len:Double;
YValue:integer;
end;
TCoefWrapIntArray=array of TCoefWrapInt;
procedure QuickSort(var LRarray:TCoefWrapIntArray;l,h:integer;UP:Boolean);
implementation
procedure QuickSort(var LRarray:TCoefWrapIntArray;l,h:integer;UP:Boolean);
var
I,J,K,mid:integer;
x:TCoefWrapInt;
begin
mid:=(l+h)div 2;
I:=l;
J:=h;
x:=LRarray[mid];
LRarray[mid]:=LRarray[I] ;
repeat
while (not(UP xor(LRarray[J].Len>x.Len))or(LRarray[J].Len=x.Len))and(I<J)do
Dec(J);
if I<J then
begin
LRarray[I]:=LRarray[J];
Inc(I);
while (not(UP xor(LRarray[I].Len<x.Len))or(LRarray[I].Len=x.Len))and(I<J)do
Inc(I);
if I<J then
begin
LRarray[J]:=LRarray[I];
Dec(J);
end;
end;
until I=J;
K:=I;
LRarray[K]:=x;
if K>l then QuickSort(LRarray,l,K-1,UP);
if K<h then QuickSort(LRarray,K+1,h,UP);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -