递归Java

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

int i = low, j = high;

L.r[0] = L.r[low]; // 用子序列的第一个元素作为枢轴(哨兵)

KeyType pivot = L.r[low].key; // 保存枢轴关键字

while (i < j) {

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

while (i < j && L.r[j].key >= pivot) j--;

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

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

while (i < j && L.r[i].key <= pivot) i++;

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

}

L.r[i] = L.r[0]; // 将枢轴放到最终位置

相关推荐
java1234_小锋7 小时前
Java高频面试题:BIO、NIO、AIO有什么区别?
java·面试·nio
用户8307196840828 小时前
Java IO三大模型(BIO/NIO/AIO)超详细总结
java
sheji34168 小时前
【开题答辩全过程】以 基于SSM的花店销售管理系统为例,包含答辩的问题和答案
java
Mr_sun.8 小时前
Day09——入退管理-入住-2
android·java·开发语言
MAGICIAN...8 小时前
【java-软件设计原则】
java·开发语言
JH30738 小时前
为什么switch不支持long
java
盐真卿8 小时前
python第八部分:高级特性(二)
java·开发语言
上海合宙LuatOS9 小时前
LuatOS核心库API——【audio 】
java·网络·单片机·嵌入式硬件·物联网·音视频·硬件工程
汤姆yu9 小时前
基于springboot的尿毒症健康管理系统
java·spring boot·后端
TT哇9 小时前
【实习】银行经理端线下领取扫码功能实现方案
java