zoukankan      html  css  js  c++  java
  • 初级工程师之排序算法一一一一一快排算法java实现

     1     public  static int[]  quickSort(int[] sortList,int start,int end){
     2         //判断条件防止内存栈溢出
     3         if(start > end){
     4             return sortList;
     5         }else {
     6             //设立初始值,将这个数单独拿出来
     7             int flag = sortList[start];
     8             //起始位置
     9             int localStart = start;
    10             //终止位置
    11             int localEnd = end;
    12             //目标把小于初始值的数放在初始值的左边,大于初始值的数放在他的右边
    13             //当终止位置大于起始位置时,证明需要移动
    14             //当localend <=localStart 时说明移动完毕
    15             while(localEnd>localStart){
    16                 //从终止位置向左走,找到一个比初始值小的数就将小的值赋值给初始值的位置,
    17                 // 因为我们已经将初始值位置(第一次之后时localstart的位置)的数,拿了出去(第一次之后是赋值给localend的位置),
    18                 //所以直接覆盖即可
    19                 //这里的判断条件不仅要数比初始值小,还要localend >local
    20                 while (sortList[localEnd]>=flag&&localEnd>localStart){
    21                     localEnd--;
    22                 }
    23                 sortList[localStart] = sortList[localEnd];
    24                 //从起点位置向右走,找到比初始值大的数就将这个数赋值给localend的位置,在上面的代码中localend位置的数已经赋值给localstart
    25                 //所以直接覆盖即可
    26                 //注意判断条件
    27                 while (sortList[localStart]<flag&localStart<localEnd){
    28                     localStart++;
    29                 }
    30                 sortList[localEnd] = sortList[localStart];
    31             }
    32             //关键步骤,移动完毕之后千万别忘了把初始值放到中间位置
    33             sortList[localStart] = flag;
    34             //分治思想,左边比初始值小的部分同样用这种方法
    35             sortList =quickSort(sortList,start,localStart-1);
    36             //右边比初始值大的不也用这种思维
    37             sortList=quickSort(sortList,localStart+1,end);
    38         }
    39         //为什么要有返回值
    40         //java中是值传递的
    41         return sortList;
    42     }
    43 }
  • 相关阅读:
    JeePlus:代码生成器
    JeePlus:API工具
    Java实现 洛谷 P1023 税收与补贴问题
    Java实现 洛谷 P1023 税收与补贴问题
    Java实现 洛谷 P1023 税收与补贴问题
    Java实现 洛谷 P1328 生活大爆炸版石头剪刀布
    Java实现 洛谷 P1328 生活大爆炸版石头剪刀布
    Java实现 洛谷 P1328 生活大爆炸版石头剪刀布
    Java实现 洛谷 P1328 生活大爆炸版石头剪刀布
    Java实现 洛谷 P1328 生活大爆炸版石头剪刀布
  • 原文地址:https://www.cnblogs.com/CCChester/p/13721846.html
Copyright © 2011-2022 走看看