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;

  • 相关阅读:
    Python:如何将文件映射到内存
    关于系统中:/dev/mem
    Python:如何设置文件的缓冲
    Python:如何处理二进制文件
    Python:struct模块的pack、unpack
    Python:如何读写文本文件
    《鸟哥的Linux私房菜》读书笔记3
    《鸟哥的Linux私房菜》读书笔记2
    《鸟哥的Linux私房菜》读书笔记1
    raspberry是个什么玩意
  • 原文地址:https://www.cnblogs.com/sdjxcolin/p/849557.html
Copyright © 2011-2022 走看看