zoukankan      html  css  js  c++  java
  • 快速排序 详细总结

    注意!!!!超级详细的快速排序总结~~~~~~~、

    快速排序思路:用人的语言描述就是将数组先找一个标准(不是死的,我拿数组的最后一个数当标准)然后将数组分为两部分,一部分小于这个标准,一部分大于这个标准,那么这个新数组就是三部分:小于这个标准的部分+标准+大于这个标准的部分。然后对那两部分进行递归使用上述方法,那么到最后这个数组就是有序的啦~(≧▽≦)/~

    步骤:

          1:让数组的最后一个数当做标准mark,定义p(进行上述方法目标数组的开始下标),r(进行上述方法目标数组的结束下标)p<=(小于标准的部分)<=i    ( i+1)<=(大于标准的部分)<j   然后将最后一个标准和i+1那个位置的数换换位置,那么现在这个数组就是:小于这个标准的部分+标准+大于这个标准的部分    这个构造。

         2:递归调用这个数组的小于标准的部分和大于标准的部分,这时的p  r要变化!!!!!!注意!!所以可以使用参数来告诉方法p  r是什么。

        3:然后递归  递归  递归  。。。。。。到最后就有序了~~~~

    貌似也不够详细啊吗,,,,,,那不懂得都可以留言戳我啊,我快马加鞭来拯救您~~~~~

    代码如下:

     1 //快速排序
     2     public static int partition(int[] array,int p,int r){
     3         int i=p-1;
     4         int mark=array[r];
     5         for(int j=p;j<r;j++){
     6             if(array[j]<mark){
     7                 i++;
     8                 int temp=array[i];
     9                 array[i]=array[j];
    10                 array[j]=temp;
    11             }
    12         }
    13         int temp=array[i+1];
    14         array[i+1]=array[r];
    15         array[r]=temp;
    16         return i+1;
    17     }
    18     
    19     public static void quickSort(int [] array,int p,int r){
    20         int q;
    21         if(p<r){
    22             q=partition(array,p,r);
    23             quickSort(array,p,q-1);
    24             quickSort(array,q+1,r);
    25         }
    26     }
    27     
  • 相关阅读:
    变量1
    PHP 函数
    发送post请求
    XXE
    CSRF
    Html基础
    暴力破解
    Brup sute
    XSS
    URL 传参转义 (特殊符号转义)
  • 原文地址:https://www.cnblogs.com/lyxcode/p/8982501.html
Copyright © 2011-2022 走看看