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 }
  • 相关阅读:
    记一次文件上传远程服务器问题
    Python模块——loguru日志模块简单学习
    Python使用百度地图API根据地名获取相应经纬度
    Python用正则表达式匹配汉字
    【工具】下载与使用(感谢博友)
    【umask】安装产品,脚本中创建目录后注意刷权限
    【凝聚】引荐优笔
    【解决办法1】centos75 No manual entry for XXXX in section X
    【填坑1】CentOS7 systemctrl管理的服务,open files的神坑
    错题记录(二)
  • 原文地址:https://www.cnblogs.com/CCChester/p/13721846.html
Copyright © 2011-2022 走看看