PHP实现快速排序

简介: `quickSort` 函数实现了一个快速排序算法。当数组长度小于或等于1时,直接返回数组。选择第一个元素作为基准,遍历数组将元素分别放入左(小于基准)和右(大于等于基准)两个子数组。递归地对子数组进行排序,最后合并结果。示例展示了对一个无序数组排序并输出。

function quickSort($arr) {
// 基线条件:如果数组为空或只有一个元素,直接返回
$length = count($arr);
if ($length <= 1) {
return $arr;
}

// 选择一个基准元素
$pivot = $arr[0];
$left = $right = array();

// 将数组分为左右两个子数组
for ($i = 1; $i < $length; $i++) {
    if ($arr[$i] < $pivot) {
        $left[] = $arr[$i];
    } else {
        $right[] = $arr[$i];
    }
}

// 递归地对左右子数组进行快速排序
$left = quickSort($left);
$right = quickSort($right);

// 合并左右子数组和基准元素
return array_merge($left, array($pivot), $right);

}

// 示例用法
$unsortedArray = array(5, 9, 2, 6, 1, 8, 3, 7);
$sortedArray = quickSort($unsortedArray);
echo "Sorted Array: ";
foreach ($sortedArray as $element) {
echo $element . " ";
}

目录
相关文章
|
开发者 容器
鸿蒙HarmonyOS - SideBarContainer 组件自学指南
`SideBarContainer` 是 HarmonyOS 提供的双区域容器组件,适用于「左侧导航 + 右侧内容」布局,如后台管理界面、文件管理器等。它支持三种布局类型:Embed(并排)、Overlay(悬浮)和 Auto(自动切换),并提供折叠、拖拽、控制按钮等功能。本文通过示例代码详解其用法,包括子组件限制、显示模式控制、尺寸参数设置、控制按钮与分割线样式定制,以及常见问题解答。掌握该组件可高效构建复杂页面结构,推荐从 Embed 模式入手逐步进阶。
478 9
鸿蒙HarmonyOS - SideBarContainer 组件自学指南
|
人工智能 程序员 测试技术
游戏开发成本认知鸿沟:从民间臆测到3A现实的残酷距离-优雅草卓伊凡
游戏开发成本认知鸿沟:从民间臆测到3A现实的残酷距离-优雅草卓伊凡
913 16
游戏开发成本认知鸿沟:从民间臆测到3A现实的残酷距离-优雅草卓伊凡
|
存储 固态存储 关系型数据库
【mysql进阶-彩蛋篇】深入理解顺序io和随机io(全网最详细篇)
【mysql进阶-彩蛋篇】深入理解顺序io和随机io(全网最详细篇)
1611 0
|
安全 搜索推荐 数据安全/隐私保护
Python基础之破解加密压缩包
Python基础之破解加密压缩包
788 0
|
数据采集 JavaScript 前端开发
构建简易Python爬虫:抓取网页数据入门指南
【8月更文挑战第31天】在数字信息的时代,数据抓取成为获取网络资源的重要手段。本文将引导你通过Python编写一个简单的网页爬虫,从零基础到实现数据抓取的全过程。我们将一起探索如何利用Python的requests库进行网络请求,使用BeautifulSoup库解析HTML文档,并最终提取出有价值的数据。无论你是编程新手还是有一定基础的开发者,这篇文章都将为你打开数据抓取的大门。
|
机器学习/深度学习 自然语言处理 算法
ICML 2024:零阶优化器微调大模型,大幅降低内存
【7月更文挑战第14天】ICML 2024研究表明,零阶优化用于大模型微调能大幅降低内存需求。该论文通过避免反向传播,减少LLM(大型语言模型)微调的内存开销,提出新方法,适用于资源受限环境。虽然性能可能不及一阶优化器,但为高效NLP计算开辟了新途径。论文链接:[arxiv.org/abs/2402.11592](https://arxiv.org/abs/2402.11592)**
758 3
|
安全 网络安全 数据安全/隐私保护
非对称加密的日常实践应用:以RSA加密为例
**RSA加密简介与Python实现** RSA,一种非对称加密技术,基于大数因子分解,用于数据加密和完整性保护。本文介绍了RSA基本原理,包括密钥生成(选取大质数p和q,计算n和φ(n),选择公钥指数e和私钥指数d),并展示了使用Python `cryptography` 库生成密钥对、加密和解密消息的代码示例。通过这些步骤,读者可理解RSA在网络安全中的应用,如HTTPS和数字签名。
1479 3
|
机器学习/深度学习 存储 人工智能
生成式 AI 与 LangCHain(一)(1)
生成式 AI 与 LangCHain(一)
931 1
|
存储 传感器 物联网
|
网络协议 网络虚拟化
遇到ARP欺骗攻击,咋整?别慌!这3招教制服它!
遇到ARP欺骗攻击,咋整?别慌!这3招教制服它!
2191 0