您的位置:首页 > 教育 > 锐评 > 5千元小投资加盟店_大庆网站建设公司_快速整站优化_免费访问国外网站的app

5千元小投资加盟店_大庆网站建设公司_快速整站优化_免费访问国外网站的app

2025/2/24 20:11:56 来源:https://blog.csdn.net/sheji888/article/details/143990577  浏览:    关键词:5千元小投资加盟店_大庆网站建设公司_快速整站优化_免费访问国外网站的app
5千元小投资加盟店_大庆网站建设公司_快速整站优化_免费访问国外网站的app

插入排序(Insertion Sort)是一种简单直观的排序算法,适用于少量数据的排序。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。以下是一个用PHP实现插入排序的示例代码:

<?php
function insertionSort(&$array) {$length = count($array);for ($i = 1; $i < $length; $i++) {$key = $array[$i];$j = $i - 1;// 将array[0..i-1]中大于key的元素向后移动一位while ($j >= 0 && $array[$j] > $key) {$array[$j + 1] = $array[$j];$j = $j - 1;}$array[$j + 1] = $key;}
}// 测试插入排序
$array = [12, 11, 13, 5, 6];
echo "未排序数组: \n";
print_r($array);insertionSort($array);echo "已排序数组: \n";
print_r($array);
?>

代码解释:

  1. 函数定义
    • function insertionSort(&$array):定义一个名为insertionSort的函数,参数$array通过引用传递,这样可以直接修改原数组。
  2. 获取数组长度
    • $length = count($array):获取数组的长度。
  3. 外层循环
    • for ($i = 1; $i < $length; $i++):从数组的第二个元素开始遍历,因为第一个元素默认是已排序的。
  4. 保存当前元素
    • $key = $array[$i]:将当前元素保存到变量$key中。
    • $j = $i - 1:初始化索引$j为当前元素的前一个索引。
  5. 内层循环
    • while ($j >= 0 && $array[$j] > $key):在内层循环中,如果$j索引的元素大于$key,则将$j索引的元素向后移动一位。
    • $array[$j + 1] = $array[$j]:将$j索引的元素赋值给$j+1索引的位置。
    • $j = $j - 1:递减$j索引。
  6. 插入当前元素
    • $array[$j + 1] = $key:找到适当的位置后,将$key插入到该位置。
  7. 测试
    • 定义一个数组$array并输出未排序的数组。
    • 调用insertionSort($array)函数进行排序。
    • 输出已排序的数组。

运行结果:

未排序数组: 
Array
([0] => 12[1] => 11[2] => 13[3] => 5[4] => 6
)
已排序数组: 
Array
([0] => 5[1] => 6[2] => 11[3] => 12[4] => 13
)

这样,通过插入排序算法,数组就被成功排序了。插入排序的时间复杂度为O(n^2),在数据量较小或基本有序的情况下表现较好。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com