第三章:数组[5常见算法]–[9排序]–[快速排序法]

第三章:数组[5常见算法]--[9排序]--[快速排序法]
强烈推介IDEA2021.1.3破解激活,IntelliJ IDEA 注册码,2021.1.3IDEA 激活码  

大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说第三章:数组[5常见算法]--[9排序]--[快速排序法],希望能够帮助大家进步!!!

快速排序法:快速排序法号称是目前最优秀的算法之一,实现思路是,将一个数组的排序问题看成是两个小数组的排序问题,而每个小的数组又可以继续看成更小的两个数组,一直递归下去,直到数组长度大小最大为2。

 

public int[] fastSort(int[] arr,int left,int right){  

      if(left < right){  

          int s = arr[left];  

          int i = left;  

          int j = right + 1;  

          while(true){  

              //向右找大于s的元素的索引  

              while(i+1 < arr.length && arr[++i] < s);  

              //向左找小于s的元素的索引  

              while(j-1 > -1 && arr[--j] > s);  

              //如果i >= j 推出循环  

              if(i >= j){  

                  break;  

              }else{  

                  //教化i和j位置的元素  

                  int t = arr[i];  

                  arr[i] = arr[j];  

                  arr[j] = t;  

              }  

          }  

          arr[left] = arr[j];  

          arr[j] = s;  

          //对左面进行递归  

          fastSort(arr,left,j-1);  

          //对右面进行递归  

          fastSort(arr,j+1,right);  

      }  

      return arr;  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/Lucky-stars/p/11010226.html

本文来源weixin_30595035,由架构君转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处:https://javajgs.com/archives/29756

发表评论