php 插入排序算法实现

插入排序是一种简单直观的排序算法,它的基本思想是将一个数据序列分为有序区和无序区,每次从无序区选择一个元素插入到有序区的合适位置,直到整个序列有序为止

5, 3, 8, 2, 0, 1

HP中可以使用以下代码实现插入排序算法:

php 复制代码
function insertionSort($arr) {
    $length = count($arr);
    for ($i = 1; $i < $length; $i++) {
        $temp = $arr[$i];
        $j = $i - 1;
        
        // 从有序区往前寻找插入位置
        while ($j >= 0 && $arr[$j] > $temp) {
            $arr[$j + 1] = $arr[$j]; // 元素后移
            $j--;
        }
        $arr[$j + 1] = $temp; // 插入元素到正确位置
    }
    
    return $arr;
}
// 测试
$arr = [5, 3, 8, 2, 0, 1];
$result = insertionSort($arr);
print_r($result);

运行以上代码会得到排序后的数组:[0, 1, 2, 3, 5, 8]。该算法的时间复杂度为O(n^2),其中n为数组长度。

相关推荐
weixin199701080161 分钟前
《米思米商品详情页前端性能优化实战》
前端·性能优化·php
weitingfu9 分钟前
Excel VBA 入门到精通(二):变量、数据类型与运算符
java·大数据·开发语言·学习·microsoft·excel·vba
lingggggaaaa11 分钟前
PHP原生开发篇&文件安全&上传监控&功能定位&关键搜索&1day挖掘
android·学习·安全·web安全·php
光电笑映11 分钟前
STL 源码解密:unordered 系列容器的底层复用与哈希策略
算法·哈希算法·散列表
foundbug99919 分钟前
无人机离散系统模型预测控制(MPC)MATLAB实现
开发语言·matlab·无人机
6Hzlia22 分钟前
【Hot 100 刷题计划】 LeetCode 215. 数组中的第K个最大元素 | C++ 快速选择与堆排序题解
c++·算法·leetcode
小白菜又菜23 分钟前
Leetcode 3070. Count Submatrices with Top-Left Element and Sum Less Than k
算法·leetcode·职场和发展
圣光SG25 分钟前
项目分析与程序设计 学习笔记
笔记·学习·学习笔记·程序设计·项目分析
爱写代码的小朋友28 分钟前
使用 Nuitka 打包 Python 应用:从入门到进阶
开发语言·python
yuan1999733 分钟前
C# 断点续传下载文件工具设计与实现
开发语言·c#