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为数组长度。

相关推荐
aixingpan10 小时前
aixingpan.cn API开发文档:api_docs_bichart_common2接口指南
前端·php
努力努力再努力wz10 小时前
【Lua入门系列】从 Table 到元表与元方法:一文理解 Lua 的行为扩展机制
开发语言·junit·lua
qq_4069810310 小时前
什么是顶层 const什么是底层const
开发语言·c++
职豚求职小程序11 小时前
百联集团校招在线测评~IQCAT行测+MAP性格
笔记
Eider199811 小时前
python基础语法之并发基础练习
开发语言·python
#麻辣小龙虾#11 小时前
网页布局css中flex+margin的组合布局技巧
开发语言·前端·javascript
云和数据.ChenGuang11 小时前
python和java的try
java·开发语言·python
我是唐青枫11 小时前
Kotlin Inheritance(继承)详解:语法、原理、实战 Demo
开发语言·kotlin
叼烟扛炮11 小时前
Linux 学习笔记(四十五):Web 安全基石——Cookie、Session 与 HTTPS 原理解析
linux·前端·网络·笔记·学习·tcp/ip·安全
zwc321043205511 小时前
第四周第五天——重构成类
c++·人工智能·opencv·算法·计算机视觉