⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 希尔排序.pas

📁 希尔排序
💻 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 + -