     procedure sort( var r : ArrayToSort; lo, up : integer );

     var  i, j : integer;
          tempr : ArrayEntry;
     begin
     while up>lo do begin
          j := lo;
          for i:=lo to up-1 do
               if r[i].k > r[i+1].k then begin
                    tempr := r[i];
                    r[i] := r[i+1];
                    r[i+1] := tempr;
                    j := i
                    end;
          up := j
          end
     end;
