zoukankan      html  css  js  c++  java
  • pascal 实现排序法

       
      procedure   swap(var   x,y:integer);  
      var  
          temp:integer;  
      begin  
          temp:=x;  
          x:=y;  
          y:=temp;  
      end;  
       
      //冒泡排序  
      procedure   BubbleSort(var   A:   array   of   Integer);  
      var  
          I,   J,   T:   Integer;  
      begin  
          for   I   :=   High(A)   downto   Low(A)   do  
              for   J   :=   Low(A)   to   High(A)   -   1   do  
                  if   A[J]   >   A[J   +   1]   then  
                  begin  
                      swap(A[J],   A[J   +   1]);  
                      T   :=   A[J];  
                      A[J]   :=   A[J   +   1];  
                      A[J   +   1]   :=   T;  
                  end;  
      end;  
       
      //选择排序  
      procedure   SelectionSort(var   A:   array   of   Integer);  
      var  
          I,   J,   T:   Integer;  
      begin  
          for   I   :=   Low(A)   to   High(A)   -   1   do  
              for   J   :=   High(A)   downto   I   +   1   do  
                  if   A[I]   >   A[J]   then  
                  begin  
                      Swap(A[I],   A[J]);  
                      T   :=   A[I];  
                      A[I]   :=   A[J];  
                      A[J]   :=   T;  
                      if   Terminated   then   Exit;  
                  end;  
      end;  
       
      //快速排序  
      procedure   QuickSort(var   A:   array   of   Integer);  
       
          procedure   QuickSortSub(var   A:   array   of   Integer;   iLo,   iHi:   Integer);  
          var  
              Lo,   Hi,   Mid,   T:   Integer;  
          begin  
              Lo   :=   iLo;  
              Hi   :=   iHi;  
              Mid   :=   A[(Lo   +   Hi)   div   2];  
              repeat  
                  while   A[Lo]   <   Mid   do   Inc(Lo);  
                  while   A[Hi]   >   Mid   do   Dec(Hi);  
                  if   Lo   <=   Hi   then  
                  begin  
                      Swap(A[Lo],   A[Hi]);  
                      T   :=   A[Lo];  
                      A[Lo]   :=   A[Hi];  
                      A[Hi]   :=   T;  
                      Inc(Lo);  
                      Dec(Hi);  
                  end;  
              until   Lo   >   Hi;  
              if   Hi   >   iLo   then   QuickSortSub(A,   iLo,   Hi);  
              if   Lo   <   iHi   then   QuickSortSub(A,   Lo,   iHi);  
          end;  
       
      begin  
          QuickSortSub(A,   Low(A),   High(A));  
      end;

  • 相关阅读:
    NYOJ 118:修路方案
    Black and White
    运算放大器【五】---全功率带宽和增益带宽积
    运算放大器[四]
    运算放大器[三]
    电路基础【一】
    运算放大器[二] -----基础
    运算放大器【一】
    关于----正弦信号整形为方波【第一帖】
    明天改写------
  • 原文地址:https://www.cnblogs.com/sdjxcolin/p/849557.html
Copyright © 2011-2022 走看看