递归Java

if (low >= high) return; // 递归边界:子序列长度为1或0时直接返回

int i = low, j = high;

L.r0 = L.rlow; // 用子序列的第一个元素作为枢轴(哨兵)

KeyType pivot = L.rlow.key; // 保存枢轴关键字

while (i < j) {

// 从右向左找小于枢轴的元素

while (i < j && L.rj.key >= pivot) j--;

if (i < j) L.ri++ = L.rj; // 将找到的元素放到左方

// 从左向右找大于枢轴的元素

while (i < j && L.ri.key <= pivot) i++;

if (i < j) L.rj-- = L.ri; // 将找到的元素放到右方

}

L.ri = L.r0; // 将枢轴放到最终位置

相关推荐
小羊没烦恼!2 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
俊昭喜喜里2 天前
java中的继承和多态的区别
java
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
譕痕2 天前
JSONObject与JSONArray封装数据格式区别
java·json
胡写代码2 天前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖2 天前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
此时不提桶,更待何时2 天前
01-06-A-JVM排查实战详解
java·jvm
vipxieliang2 天前
ValidX 在 DDD 领域驱动设计中的实践
java·spring boot
ba_pi2 天前
mysql 查询所有表名并授权
java
ProcessOn官方账号2 天前
java函数式编程--入门基础
java·编程·函数式编程