急!!!!!!怎样用delphi实现快速排序算法???????

解决方案 »

  1.   

    4.快速排序法procedure QuickSort(var SortNum:array of integer;p,r:integer);
      procedure swap(var a,b:integer);  //交换
      var tmp:integer;
      begin
        tmp:=a;
        a:=b;
        b:=tmp;
      end;
      function partition(var SortNum:array of integer;p,r:integer):integer; //划分
      var i,j,x:integer;
      begin
        i:=p;j:=r+1;
        x:=SortNum[p];
        while true do
        begin
          repeat inc(i)
          until SortNum[i]<x;
          repeat inc(j,-1)
          until SortNum[j]>x;
          if i>=j then break;
          swap(SortNum[i],SortNum[j]);
        end;
        SortNum[p]:=SortNum[j];
        SortNum[j]:=x;
        result:=j;
      end;
    var q:integer;
    begin
      if p<r then
      begin
        q:=partition(SortNum,p,r);
        QuickSort(SortNum,p,q-1);
        QuickSort(SortNum,q+1,r);
      end;
    end;
      

  2.   

    我想以 lin_t的location来排序,请问各位怎样用上面的快速排序代码实现??????
    type
      lin_t = packed record
            eqnum : string;
            edescription : string;
            location : string;
            ldescription : string;
            installdate : string;
            purchaseprice : double;    end;
      

  3.   

    如果用别的语言会写的话,看下pascal语法
      

  4.   

    楼主你的问题还没搞定么,我在另一个帖子里给你的代码不能用啊?可以去看TList的sort方法的源代码